如何 link Makefile 中的 libssh 库
How to link libssh library in 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 文件中我有:
all: main
$main: main.cpp
g++ main.cpp -o main -lssh
感谢您的帮助。 (我真的很讨厌C/C++...)
正如您从日志中看到的那样,make
没有使用您为 $main
提供的规则。我怀疑您想将其命名为 main
或 $(main)
。
$main
将变量 $m
的值(默认为无,因为 m
未定义)与 ain
连接起来,因此您已经为ain
而不是 main
。 make
因此依赖其从 .cpp
文件创建可执行文件的默认规则,其中不包括与 libssh
.
的链接
当我尝试编译我的测试程序时出现以下错误
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 文件中我有:
all: main
$main: main.cpp
g++ main.cpp -o main -lssh
感谢您的帮助。 (我真的很讨厌C/C++...)
正如您从日志中看到的那样,make
没有使用您为 $main
提供的规则。我怀疑您想将其命名为 main
或 $(main)
。
$main
将变量 $m
的值(默认为无,因为 m
未定义)与 ain
连接起来,因此您已经为ain
而不是 main
。 make
因此依赖其从 .cpp
文件创建可执行文件的默认规则,其中不包括与 libssh
.