Compiling
如何將我的 C 程序與 Arb 庫連結?
我試圖在Ubuntu中編譯程序Testing Li’s criteria 。但是,當我這樣做時
gcc demo.c
,我得到的輸出是,demo.c:2:19: fatal error: fmpcb.h: No such file or directory #include "fmpcb.h" ^ compilation terminated.
我怎樣才能編譯那個程序?我想我需要一些 bash 腳本來使編譯工作。
最新版本的 Arb 中不再存在文件 fmpcb.h。Arb 1.x 中的 fmprb_t 和 fmpcb_t 類型已被 Arb 2.x 中的(更高效的)arb_t 和 acb_t 類型淘汰。最新版本完全刪除了舊的 fmpcb_t 類型。
您應該能夠通過替換 fmprb -> arb 和 fmpcb -> acb 並可能進行其他小的調整來從該部落格文章中獲取程式碼。
但是,更好的解決方案是使用 Arb 中包含的 Keiper-Li 範常式序:
https://github.com/fredrik-johansson/arb/blob/master/examples/keiper_li.c
這基本上是部落格文章中程序的更好版本。它更快,支持多執行緒,允許您在命令行上傳遞參數而不是重新編譯,並且它應該與目前界面保持同步。
在 Arb 源目錄中,您可以按如下方式建構和執行範常式序(假設 Arb 已安裝):
cd /home/user/src/arb make examples build/examples/keiper_li 100
您還可以在不安裝 Arb 的情況下建構庫並執行範常式序,方法是告訴連結器它可以在源目錄中找到 libarb.so:
cd /home/user/src/arb make export LD_LIBRARY_PATH=/home/user/src/arb:$LD_LIBRARY_PATH make examples build/examples/keiper_li 100
有關 Arb 範常式序的文件,請參閱:http: //fredrikj.net/arb/examples.html