Python 2.7 ld can';在arch linux上构建时,找不到与python模块相关的函数
我正在尝试构建项目(Python 2.7 ld can';在arch linux上构建时,找不到与python模块相关的函数,python-2.7,cmake,archlinux,Python 2.7,Cmake,Archlinux,我正在尝试构建项目(cmake build分支),它使用python2.7并使用cmake作为构建系统 对于基于debian的发行版,一切正常。但是对于arch linux,所有代码都编译得很好,但是当涉及到链接时,问题就出现了 [ 35%] Linking CXX executable goblin-camp /usr/bin/ld: CMakeFiles/goblin-camp.dir/Goblin_Camp/src/scripting/Engine.cpp.o: in function `
cmake build
分支),它使用python2.7
并使用cmake
作为构建系统
对于基于debian的发行版,一切正常。但是对于arch linux,所有代码都编译得很好,但是当涉及到链接时,问题就出现了
[ 35%] Linking CXX executable goblin-camp
/usr/bin/ld: CMakeFiles/goblin-camp.dir/Goblin_Camp/src/scripting/Engine.cpp.o: in function `Script::Init(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&)':
Engine.cpp:(.text+0x310): undefined reference to `inittime'
/usr/bin/ld: Engine.cpp:(.text+0x315): undefined reference to `init_functools'
/usr/bin/ld: Engine.cpp:(.text+0x31a): undefined reference to `initcStringIO'
/usr/bin/ld: Engine.cpp:(.text+0x31f): undefined reference to `initzlib'
并将其作为参数添加到target\u link\u库中
target_link_libraries("goblin-camp"
python_zlib
python_datetime
python__functools
python_cStringIO
.....
在我看来,我找到了问题的原因。在基于Debain的分发版中,所有二进制python模块都集中在
/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
文件中。同时,在Arch Linux中,它们分别在/usr/lib/python2.7/lib dynload
中构建,cmake和linker找不到它们。解决方案是强制cmake导入每个模块“`add_library(python_zlib SHARED IMPORTED)set_property(TARGET python_zlib property IMPORTED_LOCATION)/usr/lib/python2.7/lib dynload/zlib.so”)``并将其作为参数添加到TARGET_link_libraries
中,我似乎找到了问题的原因。在基于Debain的分发版中,所有二进制python模块都集中在/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
文件中。同时,在Arch Linux中,它们分别在/usr/lib/python2.7/lib dynload
中构建,cmake和linker找不到它们。解决方案是强制cmake导入每个模块“`add_library(python_zlib SHARED IMPORTED)set_property(TARGET python_zlib property IMPORTED_LOCATION)/usr/lib/python2.7/lib dynload/zlib.so”)``并将其作为参数添加到TARGET_link_libraries
target_link_libraries("goblin-camp"
python_zlib
python_datetime
python__functools
python_cStringIO
.....