powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Создание lib файлов и использование их в др. проектах
12 сообщений из 12, страница 1 из 1
Создание lib файлов и использование их в др. проектах
    #38314464
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток.

В прилагаемом архиве два маленьких проекта, уровня "Hello World", созданных в Notepad++ и откомпилированных консольными утилитами MS Visual Studio 2012:

- каталог library содержит проект, создающий тестовый lib файл.
- каталог application содержит проект приложения, которое пытается использовать функционал, предоставленный lib файлом первого проекта.

В каждом проекте свой make файл для его сборки.

Проблема: несмотря на то, что первый проект у меня собрался без проблем, во втором проекте линковщику не удаётся воспользоваться моим lib файлом и, как следствие, я не получаю столь ожидаемого мною exe.

В первом проекте я определил заголовок some_library.h , в составе которого использовал __declspec( dllexport ) , который, как я понял, необходим для того, чтобы помеченные им классы и функции были видны внешним приложениям.

Во втором проекте я определил заголовок import_some_library.h , в составе которого использовал __declspec( dllimport ) который, как я понимаю, нужен для того, чтобы линковщик не ругался, а выполнял поиск в моём lib файле.

Буду весьма признателен за помощь.

Спасибо.
...
Рейтинг: 0 / 0
Создание lib файлов и использование их в др. проектах
    #38314476
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вопрос снят.
...
Рейтинг: 0 / 0
Создание lib файлов и использование их в др. проектах
    #38314491
Compositumвопрос снят.
Решили - расскажите в чем была загвоздка :)
...
Рейтинг: 0 / 0
Создание lib файлов и использование их в др. проектах
    #38314502
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в чем была загвоздкаРешили - расскажите в чем была загвоздка :)
Внёс изменения в make файл первого проекта:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
# makefile.mak
# © Andrey Bushman, 28/06/2013
#
# ЗАДАЧА: Создание тестовой библиотеки some_library.lib для её исполь-
# зования в др. проектах.
#
# СБОРКА ПРОЕКТА ОСУЩЕСТВЛЯЕТСЯ КОМАНДОЙ: 
#	nmake -f makefile.mak
#
# ВНИМАНИЕ! В make-файлах на исполнение запускается только первое 
#	задание, поэтому в зависимостях этих заданий последовательность 
#	выстроена так, чтобы выполнились все имеющиеся задания.
#---------------------------------------------------------------------
# создание lib файла (код таких файлов будет внедряться в exe и dll):
./output/some_library.lib: ./obj/some_library.obj
	cl /LD /EHsc ./obj/some_library.obj
#---------------------------------------------------------------------
# создание obj файла (на его основе собираются файлы exe, lib и dll):
./obj/some_library.obj:
	cl /c /EHsc /Fo./obj/ ./sources/some_library.cpp 
#---------------------------------------------------------------------

В результате работы make файла, в том же каталоге появляются файлы:
- some_library.exp
- some_library.lib
- some_library.dll

Я пытался переписать строку
Код: plaintext
cl /LD /EHsc ./obj/some_library.obj
так, чтобы эти файлы создавались в подкаталоге ./output/, но что-то у меня это пока не вышло (пытался колдовать с /Fo). Поэтому пока вручную их потом перетаскиваю. На данный момент, в качестве альтернативы смотрю LIB /DEF.
...
Рейтинг: 0 / 0
Создание lib файлов и использование их в др. проектах
    #38314510
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Compositumпытался колдовать с /Fo
При линковке? Стоило бы это делать с Fe.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Создание lib файлов и использование их в др. проектах
    #38314528
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovCompositumпытался колдовать с /Fo
При линковке? Стоило бы это делать с Fe.
Спасибо, я воспользовался этой опцией во втором make файле. Первый так же немного переделал, дабы устранить проблему, из-за которой файлы создавались не в нужном подкаталоге. Обновлённую версию архива прикрепляю ниже. А можно ли в make файле прописывать такие операции как создание каталогов и копирование файлов? А то получается, что второй проект генерирует exe, но потом мне в его каталог приходится вручную копировать dll файл, созданный в первом проекте.

Спасибо.
...
Рейтинг: 0 / 0
Создание lib файлов и использование их в др. проектах
    #38314589
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Compositum,

Для и этого используют макросы.
...
Рейтинг: 0 / 0
Создание lib файлов и использование их в др. проектах
    #38314590
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делать два заоблачных файла недопустимо. Определение классов должно быть одно, но адаптивное.
...
Рейтинг: 0 / 0
Создание lib файлов и использование их в др. проектах
    #38314597
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivДелать два заоблачных файла недопустимо. Определение классов должно быть одно, но адаптивное.
цитаты не понял.
...
Рейтинг: 0 / 0
Создание lib файлов и использование их в др. проектах
    #38314617
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В .NET при помощи конфигурационного файла можно указывать каталоги поиска ресурсов. В приложении, которое компилируется моим вторым проектом (см. вложенный файл в сообщении 14499705 ), создаваемый exe файл ищет файл some_library.dll в своём каталоге. Но я могу захотеть размещать dll файлы в специально отведённом под это дело подкаталоге, например в подкаталоге ./support... Или я могу захотеть, чтобы приложение искало мой dll файл в некотором общем каталоге, который совместно используется сразу несколькими приложениями.

Как обозначать каталоги поиска для обозначенных мною выше случаев?

Спасибо.
...
Рейтинг: 0 / 0
Создание lib файлов и использование их в др. проектах
    #38314739
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CompositumMasterZivДелать два заголовочных файла недопустимо. Определение классов должно быть одно, но адаптивное.
цитаты не понял.
...
Рейтинг: 0 / 0
Создание lib файлов и использование их в др. проектах
    #38314741
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CompositumВ .NET при помощи конфигурационного файла можно указывать каталоги поиска ресурсов. В приложении, которое компилируется моим вторым проектом (см. вложенный файл в сообщении 14499705 ), создаваемый exe файл ищет файл some_library.dll в своём каталоге. Но я могу захотеть размещать dll файлы в специально отведённом под это дело подкаталоге, например в подкаталоге ./support... Или я могу захотеть, чтобы приложение искало мой dll файл в некотором общем каталоге, который совместно используется сразу несколькими приложениями.

Как обозначать каталоги поиска для обозначенных мною выше случаев?

Спасибо.

PATH для исполняемых файлов (в винде текущий каталог всегда в путях неявно лежит)
LIB для поиска библиотек линкеру
INCLUDE для поиска заголовков компилятору.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Создание lib файлов и использование их в др. проектах
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]