2013-05-22 34 views
0

我想使用Tetgen通過四面體化來計算給定點集的體積。我已經在代碼中看到了一個代碼片段,可能只需要進行一些調整。Tetgen tetcall編譯錯誤

我的問題是讓tetcall(tetgen的測試程序)運行。 如果我想編譯它(在Linux終端中使用g ++ -o test tetcall.cxx -L./ -ltet)。我得到:

test.cpp:183:24:警告:不推薦將字符串常量轉換爲'char *'[-Wwrite-strings] test.cpp:184:23:警告:不推薦使用字符串常量轉換爲'char *'[-Wwrite-strings] test.cpp:190:30:錯誤:無法將參數'1'的'tetgenio :: polygon *'轉換爲'tetgenbehavior *'爲'void tetrahedralize(tetgenbehavior *,tetgenio * ,警告:已棄用的字符串常量轉換爲'char *'[-Wwrite-strings] test.cpp:194:29:warning:deprecated從字符串常量到'char *'的轉換[-Wwrite-strings] test.cpp:195:26:警告:不推薦將字符串常量轉換爲'char *'[-Wwrite-strings]

在命令中包含-L./ -ltet或不是對錯誤沒有影響。

那些警告我認爲不是這樣的問題。我不明白線190 tetcall.cxx錯誤調用該函數tetrahedralize:

tetrahedralize("pq1.414a0.1", &in, &out); 

不工作,我沒有任何改變,並得到了這一切從網站[HTTP:// tetgen.berlios.de/] [1] 我用一些警告編譯了這個庫,其中包含$ make tetlib所有文件(包括libtet.a)都在同一個映射中。 功能我覺得編譯器要連接,以及它可能會去南方,tetgen.cxx線34498

void tetrahedralize(tetgenbehavior *b, tetgenio *in, tetgenio *out, 
    tetgenio *addin, tetgenio *bgmin) 

我看了看在標題中tetgenbehavior類,但我真的不能圖瞭解變量tetgenbehavior * b的內容或如何弄清楚它的類型。我看到一些我認爲是交換機的字符成員。 我做錯了什麼,錯誤的原因是什麼?

回答

1

這可能是一個老問題,你可能已經想通了,但是你需要設置TETLIBRARY的預處理器定義。

1

嘗試使用此命令

g++ -o test tetcall.cxx -DTETLIBRARY -L./ -ltet