2015-10-06 73 views
-1

鏈接libssh庫我得到以下錯誤,當我試圖編譯我的測試程序如何在Makefile中

g++  main.cpp -o main 
/tmp/ccICBwKO.o: In function `main': 
main.cpp:(.text+0xa): undefined reference to `ssh_new' 
main.cpp:(.text+0x2d): undefined reference to `ssh_free' 
collect2: error: ld returned 1 exit status 
make: *** [main] Error 1 

在我的make文件,我有。 (我真的很討厭C/C++ ...)

回答

3

正如你從日誌中看到的,make沒有使用你給出的$main的規則。我懷疑你想要將它命名爲main$(main)

$main串接變量$m的(默認爲毫無作爲m沒有定義)與ain的價值,讓您創建一個規則ain,而不是main。因此make依靠其默認規則來創建來自.cpp文件的可執行文件,該文件不包括與libssh鏈接。

+1

完美無瑕。 makefile可以通過刪除Makefile中前導$來修復。順便說一下,這不是一個與libssh相關的問題。 – Aris