Я использую 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}
)