Windows平台vscode中cmake链接动态库失败问题

 问题:

 在vscode中,cmake 和make都能正常通过,但是在最后执行build目录下app.exe文件时出现错误,没有输出预期结果,项目文件树及CMakeLists.txt内容如下图所示:

 分析问题:

  •  生成的app.exe可执行程序在DDD/build/目录下
  • 需要链接的动态库在DDD/lib2目录下
  • 虽然在CMakeLists.txt中指定了动态库的文件路径,但这只能让编译时候不报错,在最后执行app.exe时因为app.exe和libcalc.dll不在同一个路径下,所以会找不到动态库文件导致失败

 解决办法有两种:

  1. 将动态库文件.dll和生成的app.exe可执行程序放在同一个目录下,且不能放在同一目录的子目录下,二者必须在同一级目录
  2. 将.dll动态文件放到系统目录C:\Windows\System32下即可


 

### 解决 VSCodeCMake 报错问题 #### 1. 下载文件校验码不匹配 当遇到下载文件的校验码不匹配,可以通过手动下载所需文件并将其放置在指定路径来解决此问题。具体操作是从网络上找到对应的资源链接,下载所需的库或依赖项,并替换掉原有的自动下载部分[^1]。 对于 OpenCV 的编译而言,如果官方提供的某些二进制包或者其他外部依赖出现问题,则可以考虑访问第三方平台(如 优快云)获取经过验证可用的版本。 #### 2. 配置环境变量与工具链 确保已正确安装了适用于 Windows 平台上的 MinGW 或 MSYS2 工具集,并配置好相应的 PATH 环境变量以便于命令行调用 g++ 编译器和其他辅助程序。另外,在 VS Code 内部也需要调整 settings.json 文件内的 cmake.generator 参数指向合适的生成器类型,比如 "MinGW Makefiles" 或者 "Unix Makefiles"[^3]。 ```json { "cmake.configureSettings": { "CMAKE_BUILD_TYPE": "Release", "CMAKE_GENERATOR": "MinGW Makefiles" } } ``` #### 3. 修改 `CMakeLists.txt` 文件 有为了更好地适配本地开发环境或是满足特定需求,可能需要对原始项目的构建脚本做出适当修改。例如定义宏以反映当前工程的状态: ```cpp #define Tutorial_VERSION_MAJOR @Tutorial_VERSION_MAJOR@ #define Tutorial_VERSION_MINOR @Tutorial_VERSION_MINOR@ ``` 这些预处理指令会根据 CMake 变量的实际取值被展开成具体的数值常量,从而实现动态控制源代码行为的目的。 #### 4. 获取更详细的错误日志 面对复杂的编译失败情况,建议开启更加详尽的日志记录模式,这有助于快速锁定引发异常的具体位置以及根本原因所在。可以在终端执行如下命令重新运行 CMake 来启用调试级别更高的输出信息: ```bash cmake -DCMAKE_VERBOSE_MAKEFILE=ON .. ``` 同也可以利用 IDE 自带的功能查看完整的构建过程描述,这对于排查隐含条件下的逻辑缺陷非常有帮助。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值