Связывание математической библиотеки в файле CMake на Windows и Linux - PullRequest
0 голосов
/ 01 марта 2019

Я смог написать файл CMakeLists.txt, который может создать мой проект C на Linux, однако у меня было много проблем при создании проекта на Windows.Вызов cmake .. завершается успешно, и создаются файлы проекта Visual Studio 2017, но при сборке происходит сбой размещения: Error LNK1104 cannot open file 'm.lib'.В файле CMakeLists.txt я использую target_link_libraries (MY_EXECUTABLE m), чтобы попытаться связать математическую библиотеку, которая работает в linux, но вышеупомянутая ошибка возникает в Windows.После некоторых исследований мне кажется, что математика обрабатывается библиотекой mscvr в windows, а не libm, как в linux, но я не уверен, как настроить файл CMake, чтобы можно было использовать обе операционные системы.

Кто-нибудь имеет представление о том, как я мог бы настроить это для создания в обеих средах?

1 Ответ

0 голосов
/ 01 марта 2019

Visual Studio не требует или не требует, чтобы вы явно запрашивали связывание математической библиотеки.Вы должны избегать добавления его в качестве библиотеки ссылок при сборке для Windows.Вместо того, чтобы безоговорочно делать target_link_libraries(MY_EXECUTABLE m), вы можете использовать:

IF (NOT WIN32)
  target_link_libraries(MY_EXECUTABLE m)
ENDIF()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...