我想使用Tetgen通过四面体来计算一组给定点的体积。我已经在代码中看到了这样做的代码片段,可能只需要一些调整。
我遇到的问题是如何让tetcall (一个用于tetgen的测试程序)运行起来。如果我想编译它(在Linux终端上使用g++ -o测试tetcall.cxx -L/ -ltet )。我得到了:
test.cpp:183:24: warning:不推荐使用从字符串常量到‘char*’的转换-Wwrite-strings test.cpp:184:23: warning:不推荐使用从字符串常量到‘char*’的转换-Wwrite-strings test.cpp:190:30: error:无法将参数‘1’的‘tetgenio::polygon*’转换为‘tetgenbehavior*’到‘void四面体(tetgenbehavior*,tetgenio*,tetgenio*,tetgenio*,Test.cpp:194:29*)‘test.cpp:193:26: warning:不推荐使用字符串常量到’char*‘的转换-Wwrite-strings test.cpp:194:29: warning:不推荐使用从字符串常量到’char*‘的转换-Wwrite-strings test.cpp:195:26: warning:不推荐使用从字符串常量到’char*‘的转换-Wwrite-strings
在命令中是否包含-L/ -ltet似乎与错误无关。
我认为这些警告不是什么大问题。我不理解的是190行tetcall.cxx调用函数四面体的错误:
tetrahedralize("pq1.414a0.1", &in, &out);不起作用,我没有改变任何东西,并且都是从我编译的库的站点http://tetgen.berlios.de/获取的,但有一些警告,在$ make tetlib中,所有文件(包括libte.a)都在同一个地图中。我认为编译器想要connect的函数,以及它可能会出错的地方,在tetgen.cxx 34498行中
void tetrahedralize(tetgenbehavior *b, tetgenio *in, tetgenio *out,
tetgenio *addin, tetgenio *bgmin)我看了一下头文件中的tetgenbehavior类,但我不能真正弄清楚变量tetgenbehavior *b是什么,也不知道如何确定它的类型。我看到了一些char成员,我认为它们是开关。我做错了什么?错误的原因是什么?
发布于 2013-10-17 07:36:02
这可能是一个老问题,您可能已经解决了,但是您需要设置TETLIBRARY的预处理器定义。
发布于 2013-12-23 15:03:23
尝试使用此命令
g++ -o test tetcall.cxx -DTETLIBRARY -L./ -ltethttps://stackoverflow.com/questions/16692044
复制相似问题