我正在尝试编译一些将从Python调用的C ++代码,然后调用CGAL。
我需要能够在编译时指定一些标志,但是不确定在构建过程中如何执行此操作
./CGAL-4.2/scripts/cgal_create_CMakeLists -s CallGCAL
cmake -DCGAL_DIR=./CGAL-4.2 .
make
而且我不需要手动编辑Makefile或CMakeLists
我从上面得到的错误消息没有标志告诉gcc它需要Python
CMakeFiles/CallGCAL.dir/CallGCAL.cpp.o: In function `initmyModule()':
CallGCAL.cpp:(.text+0x5e): undefined reference to `Py_InitModule4'
CMakeFiles/CallGCAL.dir/CallGCAL.cpp.o: In function `py_polygon(_object*, _object*)':
CallGCAL.cpp:(.text+0x86): undefined reference to `Py_BuildValue'
CMakeFiles/CallGCAL.dir/CallGCAL.cpp.o: In function `py_hull(_object*, _object*)':
CallGCAL.cpp:(.text+0xa6): undefined reference to `Py_BuildValue'
collect2: ld returned 1 exit status
最佳答案
好的解决了!!!必须将变量传递给cmake。
工作脚本如下。
./CGAL-4.2/scripts/cgal_create_CMakeLists -s CallCGAL
cmake -DCGAL_DIR =。/ CGAL-4.2 -DCGAL_CXX_FLAGS =“-shared -fPIC”。
使
rm -f CallCGAL.so
mv CallCGAL CallCGAL.so