2013-07-21 102 views
0

我想「製造」一個程序,但仍面臨這些錯誤;我使用make -lm,甚至包括#include,但仍面臨同樣的問題。我試圖在Ubuntu和Debian上安裝應用程序,以確保我刪除已損壞的庫的疑惑。沒有成功!未定義的引用'ceilf'

nat_src_endpoint_ip.o: In function `__new': 
    /root/softwares/sweetspot-0.0.20/src/nat_src_endpoint_ip.c:95: undefined reference to `ceilf' 
    nat_src_endpoint_tcp.o: In function `__create': 
    /root/softwares/sweetspot-0.0.20/src/nat_src_endpoint_tcp.c:58: undefined reference to `ceilf' 
    nat_src_endpoint_udp.o: In function `__create': 
    /root/softwares/sweetspot-0.0.20/src/nat_src_endpoint_udp.c:59: undefined reference to `ceilf' 
    nat_src_endpoint_icmp.o: In function `__create': 
    /root/softwares/sweetspot-0.0.20/src/nat_src_endpoint_icmp.c:48: undefined reference to `ceilf' 
    collect2: ld returned 1 exit status 
    make[1]: *** [sweetspot] Error 1 
    make[1]: Leaving directory `/root/softwares/sweetspot-0.0.20/src' 
    make: *** [all] Error 2 
+8

您是否在連接器調用結束時放置了'-lm'標誌? – 2013-07-21 17:15:31

+1

向我們展示您製作的文件或命令,用於構建 – Pradheep

+0

這是項目的焦油(強制門戶),生成文件太大 http://sourceforge.net/projects/sweetspot/files/sweetspot/0.0。 20/sweetspot-0.0.20.tar.gz/download .................................... .............. 我所做的就是運行:「./configure」然後我跑了「make」哪個失敗了,然後我跑了「make -lm」也失敗了 – Undisputed007

回答

0

您應該鏈接到數學庫。在海灣合作委員會這意味着你應該添加-lm鏈接命令行(如果你只使用一個命令行,這意味着這個命令行是用於編譯和鏈接)。

+0

我是真的很抱歉,但我完全不理解你@Hivert,我現在將顯示我的makefile文件...我做的是在執行./configure – Undisputed007

+0

之後,在命令行中運行「make -lm」我運行了'./configure;在我的電腦上做'''。在某個地方顯然缺少''-lm''。然而,由於''Makefile''是由''automake/autoconf''自動生成的,所以應該固定在這個級別。不幸的是,我不是那些工具的專家。我會盡力幫忙,但我不確定我可以。 – hivert

+0

謝謝。我將等待知道你的漏洞利用的結果,同時試圖修復它 – Undisputed007