ССЫЛКА: фатальная ошибка LNK1104: невозможно открыть файл 'python38.lib' с помощью библиотеки поиска CMake - PullRequest
0 голосов
/ 19 апреля 2020

Я пытаюсь связать библиотеку python с целью CMake и собрать из нее модуль (используя Boost. Python3). CMake правильно находит Boost. Python3 и Python3, но при связывании я получаю сообщение об ошибке LINK : fatal error LNK1104: cannot open file 'python38.lib'

Я добавил правильный python38.lib в мою PATH (и LIBPATH), и CMake правильно находит библиотека:

message(STATUS "Python3_LIBRARIES = ${Python3_LIBRARIES}")

приводит к

-- Python3_LIBRARIES = optimized;C:/Program Files/Python38/libs/python38.lib;debug;C:/Program Files/Python38/libs/python38_d.lib

, и я связываю все библиотеки:

  target_link_libraries(trgt PRIVATE
          ${Boost_LIBRARIES}
          ${Python3_LIBRARIES}
          Python3::Python # tried with and without this line
          trgtCore)

Я компилирую с $ cmake .. "-GVisual Studio 16 2019" -A x64, что соответствует моему x64 установка Python 3,8.

1 Ответ

0 голосов
/ 20 апреля 2020

Из того, что вы написали, это не проблема CMake.

CMake нашел файл правильно, но компоновщик не может его обработать по причинам, неясным из того, что вы указали в своем ответе. Страница MSDN для этой ошибки компоновщика содержит несколько полезных указателей, которые могут быть здесь неверными. В частности, убедитесь, что вы не пытаетесь смешивать 32-битные библиотеки в 64-битную сборку.

...