CMake - проблема со статической библиотекой - PullRequest
0 голосов
/ 05 февраля 2010

Я использую CMake-2.8 на winxp с генератором Visual Studio 2005.

допустим, я создал dll (A.dll) из некоторых файлов cxx и статической библиотеки static.lib

Поэтому я вызываю Link_Directories, чтобы указать каталог, в котором находится статическая библиотека. Теперь A.dll строится нормально.

Теперь я хочу, чтобы B.dll был собран из некоторых источников cxx, A.lib (импортная библиотека A.dll)

Теперь, когда я говорю Target_Link_Libraries для (B A), файл проекта создается с использованием static.lib также как зависимость. Теперь у B есть две зависимости A и static.lib. Но я не добавляю каталог static.lib в Link_Directories для B, и моя сборка не удалась.

Я не думаю, что B должен знать о static.lib

Есть идеи, как этого избежать?

Заранее спасибо, Surya

1 Ответ

1 голос
/ 05 февраля 2010

Из CMake документов :

Зависимости библиотеки по умолчанию транзитивны. Когда эта цель связана с другой целью, библиотеки, связанные с этой целью, появятся в строке ссылки и для другой цели. См. Свойство цели LINK_INTERFACE_LIBRARIES, чтобы переопределить набор зависимостей переходных ссылок для цели.

Следовательно, это должно решить вашу проблему:

TARGET_LINK_LIBRARIES(B LINK_INTERFACE_LIBRARIES A)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...