我正在尝试编译一些将从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

10-08 13:45