Почему мой проект, сгенерированный из cmake, не найдет созданную им библиотеку? - PullRequest
0 голосов
/ 18 января 2012

Я пытаюсь изучить cmake, используя их учебник .На шаге 2 он обучает пользователя через создание библиотеки.Visual Studio не может найти MathFunctions.lib, который был создан в процессе.Он действительно существует, но в папке отладки.Есть ли общий способ убедиться, что библиотека найдена без добавления операторов, таких как:

include_directories("${PROJECT_SOURCE_DIR}/MathFunctions/Debug")
include_directories("${PROJECT_SOURCE_DIR}/MathFunctions/Release")

Это кажется глупым решением и не согласуется с межплатформенными намерениями.

1 Ответ

0 голосов
/ 20 января 2012

Авторы учебника немного сдерживаются. Они не показывают источники MathFunctions.h и mysqrt.cxx. В UNIX это не нужно, но в Windows вы должны явно пометить все функции, экспортированные / импортированные из библиотеки. См. http://msdn.microsoft.com/en-us/library/3y1sfaz2.aspx (к сожалению, у меня нет хорошего учебника для указания).

Если вы не экспортируете / импортируете символы, компоновщик не сможет разрешить вашу функцию, и сборка завершится неудачей, несмотря на правильно сгенерированный проект cmake.

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