2015-10-06 76 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