windows项目构建笔记

  1. cmake -G ""指定Generator
  2. msbuild /m:8指定8线程编译
  3. msbuild /property:Configuration=Release指定构建Release版本
  4. msbuild /wd<n>禁用n号警告
  5. CMakeLists.txt中添加下面的代码来使用utf-8编码(默认使用Unicode编码)。
     #add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/source-charset:utf-8>")
     add_compile_options("$<$<C_COMPILER_ID:MSVC>:/utf-8>")
     add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/utf-8>")
    
  6. msbuild /std:c++17指定C++17标准。
  7. msbuild /Zc:__cplusplus来传递必要选项给Qt6。

构建实例

使用cmake + msbuild构建并安装(默认使用的是Debug版本,链接库后面会带d,所以更喜欢Release版本):

mkdir build && cd build
cmake .. -D CMAKE_INSTALL_PREFIX -D CMAKE_BUILD_TYPE=Release#这里的Build type指定了好像没用
msbuild.exe ALL_BUILD.vcxproj /property:Configuration=Release #似乎这里指定的Release才有用
msbuid.exe INSTALL.vcxproj /property:Configuration=Release
# 安装时还要再指定一遍,不然还会自动编译Debug给你安装,挺离谱的。。。

错误

CMake配置OpenCV错误

Invalid character escape '\U'. Call Stack (most recent call first):

原因是-DOPENCV_EXTRA_MODULES=直接复制了Windows的路径,Windows用的是\来分隔路径字符串,CMake不认,把它改成\\或者/就好了,我赣!

Qt链接错误

在链接到Qt6时一下子报了一千多个链接错误,人都傻了,头文件、链接库都添加了。
最后发现是之前用MinGW的库,忘记改了:

set(CMAKE_PREFIX_PATH D:/Qt/6.3.2/mingw_64
K:/Vulkan
K:/fastdeploy_cpu
k:/OpenCV/opencv/build
...
)

mingw_64换成msvc2019_64就好了,Linux哪来这种烦恼。。。
同样的代码,msvc编译还比gcc慢好多。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

barbyQAQ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值