我遵循了有关如何在Solaris here上安装AWS C ++ SDK的指南,并成功安装了它。问题是安装的AWS库是32位而不是64位。默认情况下,AWS尝试链接到操作系统上的64位库文件,但是由于AWS库是32位,因此会导致以下错误:
ld: fatal: file /usr/lib/64/libssl.so: wrong ELF class: ELFCLASS64
ld: fatal: file processing errors. No output written to libaws-cpp-sdk-core.so
collect2: error: ld returned 1 exit status
gmake[2]: *** [aws-cpp-sdk-core/CMakeFiles/aws-cpp-sdk-core.dir/build.make:2480: aws-cpp-sdk-core/libaws-cpp-sdk-core.so] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:173: aws-cpp-sdk-core/CMakeFiles/aws-cpp-sdk-core.dir/all] Error 2
gmake: *** [Makefile:128: all] Error 2
在其中一个.so文件(例如libaws-cpp-sdk-core.so)上运行file
会返回以下内容:
ELF 32-bit LSB dynamic lib 80386 Version 1, dynamically linked, not stripped
对我的操作系统中已经存在的库文件(例如libssl.so)执行相同操作将返回以下内容:
ELF 64-bit LSB dynamic lib AMD64 Version 1, dynamically linked, not stripped
通过将AWS链接到它尝试链接到的库文件的32位版本,我已经能够使所有东西都以32位运行,但是我找不到有关如何在64位和更高版本中构建AWS库的任何信息。我不知道还能去哪里。任何帮助都将不胜感激。
答案 0 :(得分:1)
检查问题注释以获取答案。