windows - CMake没有将静态库链接到其他静态库
问题描述
我正在创建一个静态库,而它又依赖于其他库。我正在 Windows 平台上制作这个库。我是 cmake 的新手,但尝试过这样的:
set(Agent17_LIB Agent17Lib)
add_library(${Agent17_LIB} "${PROJECT_SOURCE_DIR}/Agent17Lib.cpp")
find_library(awscppiotsdklib aws-iot-sdk-cpp.lib ${PROJECT_SOURCE_DIR}/../Libs/aws-iot-device-sdk-cpp/build-64/archive/Debug)
MESSAGE( STATUS "awscppiotsdklib path: " ${awscppiotsdklib} )
find_library(awscppsdkcorelib aws-cpp-sdk-core.lib ${PROJECT_SOURCE_DIR}/../Libs/aws-cpp-sdk-core/Debug)
MESSAGE( STATUS "awscppsdkcorelib path: " ${awscppsdkcorelib} )
find_library(awscppsdks3lib aws-cpp-sdk-s3.lib ${PROJECT_SOURCE_DIR}/../Libs/aws-cpp-sdk-s3/Debug)
MESSAGE( STATUS "awscppsdks3lib path: " ${awscppsdks3lib} )
find_library(awscppsdkstslib aws-cpp-sdk-sts.lib ${PROJECT_SOURCE_DIR}/../Libs/aws-cpp-sdk-sts/Debug)
MESSAGE( STATUS "awscppsdkstslib path: " ${awscppsdkstslib} )
find_library(libcurllib libcurld.lib ${PROJECT_SOURCE_DIR}/../Libs/Curl)
MESSAGE( STATUS "libcurllib path: " ${libcurllib} )
find_library(ssleay32MDlib ssleay32MD.lib ${PROJECT_SOURCE_DIR}/../Libs/OpenSSL-Win64/lib/VC)
MESSAGE( STATUS "ssleay32MDlib path: " ${ssleay32MDlib} )
find_library(libeay32MDlib libeay32MD.lib ${PROJECT_SOURCE_DIR}/../Libs/OpenSSL-Win64/lib/VC)
MESSAGE( STATUS "libeay32MDlib path: " ${libeay32MDlib} )
target_link_libraries (${Agent17_LIB} awscppiotsdklib awscppsdkcorelib awscppsdks3lib awscppsdkstslib libcurllib ssleay32MDlib libeay32MDlib)
但看起来我的目标库-Agent17_LIB 是在不包括其他库的情况下创建的。
任何帮助表示赞赏。我被困在这一点上。
我得到的输出是:
$ cmake -G "Visual Studio 15 2017 Win64" ../.
-- The CXX compiler identification is MSVC 19.13.26131.1
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.13.26128/bin/Hostx86/x64/cl.exe
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.13.26128/bin/Hostx86/x64/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- awscppiotsdklib path: C:/Work/rits-git-working/Libs/aws-iot-device-sdk-cpp/build-64/archive/Debug/aws-iot-sdk-cpp.lib
-- awscppsdkcorelib path: C:/Work/rits-git-working/Libs/aws-cpp-sdk-core/Debug/aws-cpp-sdk-core.lib
-- awscppsdks3lib path: C:/Work/rits-git-working/Libs/aws-cpp-sdk-s3/Debug/aws-cpp-sdk-s3.lib
-- awscppsdkstslib path: C:/Work/rits-git-working/Libs/aws-cpp-sdk-sts/Debug/aws-cpp-sdk-sts.lib
-- libcurllib path: C:/Work/rits-git-working/Libs/Curl/libcurld.lib
-- ssleay32MDlib path: C:/Work/rits-git-working/Libs/OpenSSL-Win64/lib/VC/ssleay32MD.lib
-- libeay32MDlib path: C:/Work/rits-git-working/Libs/OpenSSL-Win64/lib/VC/libeay32MD.lib
-- CMAKE_BINARY_DIR path: C:/Work/rits-git-working/Agent17Lib/build
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Work/rits-git-working/Agent17Lib/build
cmake 有没有办法更新 Visual Studio 项目的项目属性的 Librarian 部分?如果我手动更新 Librarian 部分,那么我可以成功创建主库,但我无法弄清楚如何从 cmake 更新 Librarian。
解决方案
推荐阅读
- excel-formula - 如何对列中的数字总和使用条件格式?如果手动输入任何错误的值,则将值更改为红色?
- python - 如何创建一个新列读取另一列中字符串的一部分并将其转换为整数
- sql-server - 有没有办法只将“好”记录写入 SQL Server 表并使用 AWS Glue 作业返回“坏”记录?
- python - Keras 中的注意力:如何在 keras 密集层中添加不同的注意力机制?
- sql - SQL 查询问题。提取满足两个条件之一但不能同时满足两个条件的数据
- python - TensorFlow 无法为形状为“(?, 8)”的张量“Placeholder_21:0”提供形状 (538, 1) 的值?
- python - 为什么在添加自定义损失函数后会出现此错误:未知损失函数:DSSIMObjective?
- java - 如何在休眠 5.3 中使用键贡献类型
- mocha.js - Ethereum Solidity Contract - web3.eth.Contract send() 方法中的 Mocha 超时
- haskell - Haskell 初学者级函数实现