Cmake debug build main. cpp .o: неопределенная ссылка на символ 'PyErr_Format' - PullRequest
0 голосов
/ 12 апреля 2020

Я использую Cmake для сборки программы, , которая была встроена с Python. Когда я устанавливаю тип сборки как Release, он может быть успешно собран.

Однако, когда я устанавливаю тип сборки как Debug, появляются следующие ошибки:

[100%] Linking CXX executable MaskFusion
/usr/bin/ld: CMakeFiles/MaskFusion.dir/main.cpp.o: undefined reference to symbol 'PyErr_Format'
/home/wayne/miniconda3/envs/slam-tf2/lib/libpython3.7m.so.1.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
GUI/CMakeFiles/MaskFusion.dir/build.make:354: recipe for target 'GUI/MaskFusion' failed
make[2]: *** [GUI/MaskFusion] Error 1
CMakeFiles/Makefile2:211: recipe for target 'GUI/CMakeFiles/MaskFusion.dir/all' failed
make[1]: *** [GUI/CMakeFiles/MaskFusion.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

Поскольку я использую среду conda, у меня появляются следующие конфигурации Cmake:

set(PYTHON_INCLUDE_DIRS "/home/wayne/miniconda3/envs/slam-tf2/include/python3.7m")
set(PYTHON_LIBRARIES "/home/wayne/miniconda3/envs/slam-tf2/lib/libpython3.7m.so")
...

target_include_directories(...
                            ${PYTHON_INCLUDE_DIRS}
)

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