在C.上安装用于ssh调用的libssh
Ubuntu 13.04
apt-get install gcc --fine
apt-get install cmake -fine
wget openssl-1.0.1e.tar.gz --fine
tar -xzvf openssl-1.0.1e.tar.gz --fine
./config --prefix = / usr / local --openssldir = / usr / local / openssl --fine
make --fine
进行测试 - 精细
make install --fine
wget zlib-1.2.8.tar.gz --fine
。/配置;进行测试 - 精细
make install --fine
apt-get install dev-essential
现在安装libssh.org
cmake -DCMAKE_INSTALL_PREFIX = / usr -DCMAKE_BUILD_TYPE = Debug .. - fine
- C编译器标识是GNU 4.7.3
- 检查工作C编译器:/ usr / bin / cc
- 检查工作C编译器:/ usr / bin / cc - 工作
- 检测C编译器ABI信息
- 检测C编译器ABI信息 - 完成
- 执行测试WITH_FPIC
- 执行测试WITH_FPIC - 成功
- 执行测试WITH_STACK_PROTECTOR
- 执行测试WITH_STACK_PROTECTOR - 成功
- 找到ZLIB:/ usr / local / include
- 找到PkgConfig:/ usr / bin / pkg-config(找到版本" 0.26")
- 检查模块' openssl'
- 找到openssl,版本1.0.1e
- 找到OpenSSL:/usr/local/lib/libssl.a; /usr/local/lib/libcrypto.a
- 寻找包含文件pthread.h
- 寻找包含文件pthread.h - 找到
- 寻找pthread_create
- 寻找pthread_create - 未找到
- 在pthreads中寻找pthread_create
- 在pthreads中寻找pthread_create - 未找到
- 在pthread中寻找pthread_create
- 在pthread中寻找pthread_create - 找到了
- 找到主题:TRUE
- 检查模块' heimdal-gssapi'
- 包' heimdal-gssapi'没找到
- 找不到GSSAPI(缺少:GSSAPI_LIBRARIES GSSAPI_INCLUDE_DIR)
- 执行测试WITH_VISIBILITY_HIDDEN
- 执行测试WITH_VISIBILITY_HIDDEN - 成功
- 寻找argp.h
- 寻找argp.h - 找到了
- 寻找pty.h
- 寻找pty.h - 找到了
- 寻找termios.h
- 寻找termios.h - 找到了
- 寻找unistd.h
- 寻找unistd.h - 找到了
- 寻找openssl / aes.h
- 寻找openssl / aes.h - 找到了
- 寻找openssl / blowfish.h
- 寻找openssl / blowfish.h - 找到了
- 寻找openssl / des.h
- 寻找openssl / des.h - 找到了
- 寻找openssl / ecdh.h
- 寻找openssl / ecdh.h - 找到了
- 寻找openssl / ec.h
- 寻找openssl / ec.h - 找到了
- 寻找openssl / ecdsa.h
- 寻找openssl / ecdsa.h - 找到了
- 寻找strncpy
- 寻找strncpy - 发现
- 寻找vsnprintf
- 寻找vsnprintf - 找到了
- 寻找snprintf
- 寻找snprintf - 找到了
- 寻找投票
- 寻找民意调查 - 找到了
- 寻找选择
- 寻找选择 - 找到
- 寻找getaddrinfo
- 寻找getaddrinfo - 发现
- 寻找ntohll
- 寻找ntohll - 未找到
- 寻找htonll
- 寻找htonll - 未找到
- 在rt中寻找clock_gettime
- 在rt中寻找clock_gettime - 找到了
- 在util中寻找forkpty
- 在util中寻找forkpty - 找到了
- 寻找cfmakeraw
- 寻找cfmakeraw - 找到
- 寻找strtoull
- 寻找strtoull - 找到了
- 寻找__strtoull
- 寻找__strtoull - 未找到
- 执行测试HAVE_GCC_THREAD_LOCAL_STORAGE
- 执行测试HAVE_GCC_THREAD_LOCAL_STORAGE - 成功
- 执行测试HAVE_MSC_THREAD_LOCAL_STORAGE
- 执行测试HAVE_MSC_THREAD_LOCAL_STORAGE - 失败
- 执行测试HAVE_GCC_VOLATILE_MEMORY_PROTECTION
- 执行测试HAVE_GCC_VOLATILE_MEMORY_PROTECTION - 成功
- 检查系统是否为大端
- 搜索16位整数
- 寻找sys / types.h
- 寻找sys / types.h - 找到了
- 寻找stdint.h
- 寻找stdint.h - 找到了
- 寻找stddef.h
- 寻找stddef.h - 找到了
- 检查无符号短路的尺寸
- 检查无符号短路的大小 - 完成
- 使用无符号短语
- 检查系统是否是大端 - 小端子
- 找不到Doxygen(缺少:DOXYGEN_EXECUTABLE)
- CXX编译器标识为GNU 4.7.3
- 检查CXX编译器是否正常工作:/ usr / bin / c ++
- 检查工作CXX编译器:/ usr / bin / c ++ - 工作
- 检测CXX编译器ABI信息
- 检测CXX编译器ABI信息 - 完成
- ********************************************
- ********** libssh构建选项:**********
- zlib支持:ON
- libgcrypt支持:OFF
- SSH-1支持:OFF
- SFTP支持:ON
- 服务器支持:ON
- GSSAPI支持:0
- Pcap调试支持:ON
- 使用静态库:OFF
- 单元测试:OFF
- 客户代码单元测试:OFF
- 公共API文档生成
- 基准:OFF
- ********************************************
- 配置完成
- 生成完成
- 构建文件已写入:/root/libssh/libssh-0.6.0rc1/build
****现在我试着跑了
制作或制作****
扫描目标ssh_shared的依赖关系
[1%]构建C对象src / CMakeFiles / ssh_shared.dir / agent.c.o
[2%]构建C对象src / CMakeFiles / ssh_shared.dir / auth.c.o
[4%]构建C对象src / CMakeFiles / ssh_shared.dir / base64.c.o
[5%]构建C对象src / CMakeFiles / ssh_shared.dir / buffer.c.o
[6%]构建C对象src / CMakeFiles / ssh_shared.dir / callbacks.c.o
[8%]构建C对象src / CMakeFiles / ssh_shared.dir / channels.c.o
[9%]构建C对象src / CMakeFiles / ssh_shared.dir / client.c.o
[10%]构建C对象src / CMakeFiles / ssh_shared.dir / config.c.o
[12%]构建C对象src / CMakeFiles / ssh_shared.dir / connect.c.o
[13%]构建C对象src / CMakeFiles / ssh_shared.dir / dh.c.o
[14%]构建C对象src / CMakeFiles / ssh_shared.dir / ecdh.c.o
[16%]构建C对象src / CMakeFiles / ssh_shared.dir / error.c.o
[17%]构建C对象src / CMakeFiles / ssh_shared.dir / getpass.c.o
[18%]构建C对象src / CMakeFiles / ssh_shared.dir / init.c.o
[20%]构建C对象src / CMakeFiles / ssh_shared.dir / kex.c.o
[21%]构建C对象src / CMakeFiles / ssh_shared.dir / known_hosts.c.o
[22%]构建C对象src / CMakeFiles / ssh_shared.dir / legacy.c.o
[24%]构建C对象src / CMakeFiles / ssh_shared.dir / libcrypto.c.o
[25%]构建C对象src / CMakeFiles / ssh_shared.dir / log.c.o
[26%]构建C对象src / CMakeFiles / ssh_shared.dir / match.c.o
[28%]构建C对象src / CMakeFiles / ssh_shared.dir / messages.c.o
[29%]构建C对象src / CMakeFiles / ssh_shared.dir / misc.c.o
[30%]构建C对象src / CMakeFiles / ssh_shared.dir / options.c.o
[32%]构建C对象src / CMakeFiles / ssh_shared.dir / packet.c.o
[33%]构建C对象src / CMakeFiles / ssh_shared.dir / packet_cb.c.o
[34%]构建C对象src / CMakeFiles / ssh_shared.dir / packet_crypt.c.o
[36%]构建C对象src / CMakeFiles / ssh_shared.dir / pcap.c.o
[37%]构建C对象src / CMakeFiles / ssh_shared.dir / pki.c.o
[38%]构建C对象src / CMakeFiles / ssh_shared.dir / poll.c.o
[40%]构建C对象src / CMakeFiles / ssh_shared.dir / session.c.o
[41%]构建C对象src / CMakeFiles / ssh_shared.dir / scp.c.o
[42%]构建C对象src / CMakeFiles / ssh_shared.dir / socket.c.o
[44%]构建C对象src / CMakeFiles / ssh_shared.dir / string.c.o
[45%]构建C对象src / CMakeFiles / ssh_shared.dir / threads.c.o
[46%]构建C对象src / CMakeFiles / ssh_shared.dir / wrapper.c.o
[48%]构建C对象src / CMakeFiles / ssh_shared.dir / pki_crypto.c.o
[49%]构建C对象src / CMakeFiles / ssh_shared.dir / sftp.c.o
[50%]构建C对象src / CMakeFiles / ssh_shared.dir / sftpserver.c.o
[52%]构建C对象src / CMakeFiles / ssh_shared.dir / server.c.o
[53%]构建C对象src / CMakeFiles / ssh_shared.dir / bind.c.o
[54%]构建C对象src / CMakeFiles / ssh_shared.dir / gzip.c.o
链接C共享库libssh.so
[54%]建立目标ssh_shared
扫描目标ssh_threads_shared的依赖关系
[56%]构建C对象src / threads / CMakeFiles / ssh_threads_shared.dir / pthread.c.o
链接C共享库libssh_threads.so
[56%]建立目标ssh_threads_shared
扫描目标执行的依赖关系
[57%]构建C对象示例/ CMakeFiles / exec.dir / exec.c.o
[58%]构建C对象示例/ CMakeFiles / exec.dir / authentication.c.o
[60%]构建C对象示例/ CMakeFiles / exec.dir / knownhosts.c.o
[61%]构建C对象示例/ CMakeFiles / exec.dir / connect_ssh.c.o
链接C可执行文件执行
** .. / src / libssh.so.4.3.0:未定义引用`dlopen'
../src/libssh.so.4.3.0:未定义引用`dlclose'`
../src/libssh.so.4.3.0:未定义引用`dlerror'
../src/libssh.so.4.3.0:未定义引用`dlsym'
../src/libssh.so.4.3.0:未定义引用`dladdr' **
答案 0 :(得分:0)
libssh根本不使用dlopen。它是openssl或另一个需要dlopen并且没有正确链接的库。
你正在链接openssl的静态库,它可能是需要libdl的openssl。