0

运行此命令: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?

4

1 回答 1

0

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

通过指定单个扩展名

-DCMAKE_FIND_LIBRARY_SUFFIXES=.a

您将强制仅搜索静态库。

通过指定几个扩展名

"-DCMAKE_FIND_LIBRARY_SUFFIXES=.a;.so"

你告诉 CMake更喜欢静态库(.a)而不是共享库( .so)。

于 2017-04-24T18:22:34.103 回答