我们正在尝试使用setup和thread在EC2服务器上构建适用于C ++的AWS开发工具包(仅s3模块)
它编译良好,包括带有测试的s3
接下来,我尝试编译 example
但是,CMake抛出错误(如错误消息所示,文件 / usr / local / lib / aws-c-event-stream / cmake / static / aws-c-event-stream-targets .cmake 不存在)。我该如何解决?
ubuntu@ip:~/awslog$ mkdir sdk_example_builds
ubuntu@ip:~/awslog$ cd sdk_example_builds/
ubuntu@ip:~/awslog/sdk_example_builds$ mkdir s3 && cd s3
ubuntu@ip:~/awslog/sdk_example_builds/s3$ sudo cmake /home/ubuntu/awslog/aws-doc-sdk-examples/cpp/example_code/s3
-- Check if compiler accepts -pthread
-- Check if compiler accepts -pthread - yes
-- Found Threads: TRUE
CMake Error at /usr/local/lib/aws-c-common/cmake/aws-c-common-config.cmake:7 (include):
include could not find load file:
/usr/local/lib/aws-c-common/cmake/static/aws-c-common-targets.cmake
Call Stack (most recent call first):
/usr/share/cmake-3.10/Modules/CMakeFindDependencyMacro.cmake:48 (find_package)
/usr/local/lib/aws-c-event-stream/cmake/aws-c-event-stream-config.cmake:2 (find_dependency)
/usr/share/cmake-3.10/Modules/CMakeFindDependencyMacro.cmake:48 (find_package)
/usr/local/lib/cmake/aws-cpp-sdk-core/aws-cpp-sdk-core-config.cmake:2 (find_dependency)
/usr/local/lib/cmake/AWSSDK/AWSSDKConfig.cmake:292 (find_package)
CMakeLists.txt:15 (find_package)
CMake Error at /usr/local/lib/aws-checksums/cmake/aws-checksums-config.cmake:4 (include):
include could not find load file:
/usr/local/lib/aws-checksums/cmake/static/aws-checksums-targets.cmake
Call Stack (most recent call first):
/usr/share/cmake-3.10/Modules/CMakeFindDependencyMacro.cmake:48 (find_package)
/usr/local/lib/aws-c-event-stream/cmake/aws-c-event-stream-config.cmake:3 (find_dependency)
/usr/share/cmake-3.10/Modules/CMakeFindDependencyMacro.cmake:48 (find_package)
/usr/local/lib/cmake/aws-cpp-sdk-core/aws-cpp-sdk-core-config.cmake:2 (find_dependency)
/usr/local/lib/cmake/AWSSDK/AWSSDKConfig.cmake:292 (find_package)
CMakeLists.txt:15 (find_package)
CMake Error at /usr/local/lib/aws-c-event-stream/cmake/aws-c-event-stream-config.cmake:8 (include):
include could not find load file:
/usr/local/lib/aws-c-event-stream/cmake/static/aws-c-event-stream-targets.cmake
Call Stack (most recent call first):
/usr/share/cmake-3.10/Modules/CMakeFindDependencyMacro.cmake:48 (find_package)
/usr/local/lib/cmake/aws-cpp-sdk-core/aws-cpp-sdk-core-config.cmake:2 (find_dependency)
/usr/local/lib/cmake/AWSSDK/AWSSDKConfig.cmake:292 (find_package)
CMakeLists.txt:15 (find_package)
-- Found aws-cpp-sdk-core
-- Try finding aws-cpp-sdk-s3
-- Found aws-cpp-sdk-s3
-- Configuring incomplete, errors occurred!
See also "/home/ubuntu/awslog/sdk_example_builds/s3/CMakeFiles/CMakeOutput.log".
See also "/home/ubuntu/awslog/sdk_example_builds/s3/CMakeFiles/CMakeError.log".
答案 0 :(得分:0)
从您的日志中可以很明显地看出,该错误与my_dict = {'eric': ['12', '12'], 'ted': ['12', 102]}
n = input("name\n>>")
if n in my_dict:
print(my_dict[n])
else:
print("error")
库类型有关。
在您的情况下,cmake
被调用为默认的静态库;您可以通过查看其查找的路径来看到它:
cmake
为了能够编译您的示例,只需运行CMake告诉它链接共享库,如下所示:
/usr/local/lib/aws-c-common/cmake/static/aws-c-common-targets.cmake
然后
sudo cmake /home/ubuntu/awslog/aws-doc-sdk-examples/cpp/example_code/s3 -DBUILD_SHARED_LIBS=ON
您完成了!
P.S .:尚不清楚为什么AWS开发工具包SDK库不包含静态cmake文件(您的配置中可能缺少某些文件)。但是,通过这种方式,您可以使用SDK的共享库版本,并且可以以相同的方式工作。