CMake问题(已解决):LNK1104: 无法打开文件“*.lib” [*.vcxproj]

项目场景:

windows平台、vscode、cmake

分享在学习cmake时碰见的问题,windows系统


问题描述

在使用cmake时,使用静态库,全程无障碍,但是改成SHARED就会出下如下错误
LNK1104: 无法打开文件“*.lib” [.vcxproj]
在这里插入图片描述
cmake代码如下:

#main/CMakeLists.txt

#最小版本
cmake_minimum_required(VERSION 3.10)

#项目信息
project(Main)

#添加动态库
add_library(Account SHARED "../dir/Account.h" "../dir/Account.cpp")

#生成可执行文件
add_executable(Main main.cpp)

#为目标添加头目录
target_include_directories(Main PUBLIC "../dir")

#为目标添加库文件
target_link_libraries(Main PRIVATE Account)

原因分析:

简单来讲是由于缺失了导入库(.lib),这里的.lib文件并不是静态库,在windows平台上使用动态库需要导入库的辅助,而我的cmake默认是不生成导入库的


解决方案:

知道问题了解决方案就很简单!
让cmake生成导入库就好

加入如下:
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)//开启导入库生成功能

在这里插入图片描述

  • 9
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值