我有以下 Makefile:
remote: RemoteCMD.o sshlib.o
g++ -L/usr/include/libssh -lssh RemoteCMD.o sshlib.o -o RemoteCMD
RemoteCMD.o: RemoteCMD.cpp
g++ -c RemoteCMD.cpp
sshlib.o: sshlib.cpp
g++ -c sshlib.cpp
sshlib.h 包括 libssh/libssh.h,sshlib.cpp 包括 sshlib.h。当我得到:
g++ -L/usr/include/libssh -lssh RemoteCMD.o sshlib.o -o RemoteCMD
sshlib.o: In function `ssh::connect(char*, char*)':
sshlib.cpp:(.text+0x1c): undefined reference to `ssh_new'
我还仔细检查了 libssh.a 的位置:
$> whereis libssh.a
libssh: /usr/include/libssh
我也试过-llibssh
and -llibssh.a
。似乎这个人也有一个非常相似的未回答问题。