- 论坛徽章:
- 0
|
ssh2使用开源代码封装自己的代码makefile联编问题
http://bbs.chinaunix.net/forum.p ... mp;fromuid=20556878
unix平台:
使用了ssh2的开源包并且自己进行了编译,编译通过,然后封装自己的程序后同已经编译完成的lib库link联编生成目标文件。哪位大虾知道libssh2在联编的时候是联编其so文件还是有个库名?例如:我联编线程库库名是pthread,makefile中写成-lpthread 那libssh2 是个-llibssh2还是libssh2.so ?试了-llibssh2和-llibssh都不行。
makefile编译过程:
生成.o文件:
CC -Wl,+s -AA -g -mt +W930 +W7004 -I../include -I/ssh2/libssh2-1.3.0/include -o ../bin/ssh.o -c ssh.cpp
如果生成目标文件:
aCC -Wl,+s -AA -g -mt +W930 +W7004 -o sshtest main.o ssh.o -llibssh2 -L/ssh2/libssh2-1.3.0/src/.libs/libssh2.so -lssl -lcrypto -lpthread
报错"ld: Can't find library for -llibssh2"。
如果生成目标文件:
aCC -Wl,+s -AA -g -mt +W930 +W7004 -o sshtest main.o ssh.o /opt/hp-gcc-4.6.0/lib/libgcc_s.so.0
/ssh2/libssh2-1.3.0/src/.libs/libssh2.so -lssl -lcrypto -lpthread
则报错"ld: Can't find dependent library "libgcc_s.so.0"
而libssh2.so所需要的链接库gcc是可以找到的,如下:
vh36-1-/var/agent_server/C_CODE/code-v2.0/agentless/src> ldd /libssh2-1.3.0/src/.libs/libssh2.so
libssl.so.1 => /usr/lib/hpux32/libssl.so.1
libcrypto.so.1 => /usr/lib/hpux32/libcrypto.so.1
libc.so.1 => /usr/lib/hpux32/libc.so.1
libgcc_s.so.0 => /opt/hp-gcc-4.6.0/lib/libgcc_s.so.0
libunwind.so.1 => /usr/lib/hpux32/libunwind.so.1
libdl.so.1 => /usr/lib/hpux32/libdl.so.1
libpthread.so.1 => /usr/lib/hpux32/libpthread.so.1
libdl.so.1 => /usr/lib/hpux32/libdl.so.1
libunwind.so.1 => /usr/lib/hpux32/libunwind.so.1
libc.so.1 => /usr/lib/hpux32/libc.so.1
libuca.so.1 => /usr/lib/hpux32/libuca.so.1
哪位大侠弄过,给指导指导。谢谢了。 |
|