如何静态链接libcurl,libssl,uuid libs?

时间:2017-04-24 15:56:01

标签: cmake aws-sdk-cpp

运行此命令:cmake -DCMAKE_BUILD_TYPE=Debug -DENABLE_TESTING=OFF -DBUILD_ONLY="s3" -DFORCE_SHARED_CRT=OFF -DBUILD_SHARED_LIBS=OFF <aws-sdk-src>始终链接到共享的libcurl,ssl库,您可以从(截断的)CMAKE输出中看到:

-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.8") 
--   Zlib include directory: /usr/include
--   Zlib library: /usr/lib/x86_64-linux-gnu/libz.so
-- Encryption: Openssl
-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libssl.so;/usr/lib/x86_64-linux-gnu/libcrypto.so (found version "1.0.2g") 
--   Openssl include directory: /usr/include
--   Openssl library: /usr/lib/x86_64-linux-gnu/libssl.so;/usr/lib/x86_64-linux-gnu/libcrypto.so
-- Http client: Curl
-- Found CURL: /usr/lib/x86_64-linux-gnu/libcurl.so (found version "7.47.0") 
--   Curl include directory: /usr/include
--   Curl library: /usr/lib/x86_64-linux-gnu/libcurl.so
-- Considering s3

如何强制它链接libz.a,libcurl.a呢?

1 个答案:

答案 0 :(得分:0)

由于主要通过find_library命令搜索库,您可以设置变量CMAKE_FIND_LIBRARY_SUFFIXES以影响搜索的扩展名。

通过

指定单个扩展名
-DCMAKE_FIND_LIBRARY_SUFFIXES=.a

您将强制仅搜索静态库。

通过

指定多个扩展名
"-DCMAKE_FIND_LIBRARY_SUFFIXES=.a;.so"

你告诉CMake 偏好静态库(.a)而不是共享的(.so)。