Cmake 如何静态链接libcurl、libssl、uuid libs?

Cmake 如何静态链接libcurl、libssl、uuid libs?,cmake,aws-sdk-cpp,Cmake,Aws Sdk Cpp,运行此命令:cmake-DCMAKE\u BUILD\u TYPE=Debug-DENABLE\u TESTING=OFF-DBUILD\u ONLY=“s3”-DFORCE\u SHARED\u CRT=OFF-DBUILD\u SHARED\u LIBS=OFF始终链接到共享libcurl、ssl库,如您在(截断的)cmake输出中所见: -- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.8") --

运行此命令:
cmake-DCMAKE\u BUILD\u TYPE=Debug-DENABLE\u TESTING=OFF-DBUILD\u ONLY=“s3”-DFORCE\u SHARED\u CRT=OFF-DBUILD\u SHARED\u LIBS=OFF
始终链接到共享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呢

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

通过使用指定单个扩展名

-DCMAKE_FIND_LIBRARY_SUFFIXES=.a
您将强制只搜索静态库

通过使用

"-DCMAKE_FIND_LIBRARY_SUFFIXES=.a;.so"

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

尝试了-DCMAKE\u FIND\u LIBRARY\u后缀,但它不起作用。它仍在链接到共享库。没有错误。我验证了静态库就在共享库旁边。是的。我确保我一开始是清白的。在使用-DCMAKE\u FIND\u LIBRARY\u后缀选项运行命令之前,基本上删除了所有CMake生成的文件。