作者dzwei (e^(i*pi)+1=0)
看板C_and_CPP
标题Re: [问题] VScode内建终端机无法make
时间Tue Sep 25 16:43:50 2018
===================
电脑排版
手机使用者阅读小心伤眼
===================
===================
前言
===================
刚刚有人说cmake的问题
小弟刚好前镇子也有碰到过
所以整理一些心得xd
有错还麻烦这边的高手指正
这边提供两种方式
以下都是在windows下讨论
Linux就像大家想的那样
===================
cmake使用说明
===================
----------------------------------------
0. 建立专案目录结构
----------------------------------------
目录结构大概会像 :
projectdir
- src
- A
- a.h
- a.c
- CMakeList.txt
- B
- b.h
- b.c
- CMakeList.txt
- CMakeList.txt
- build
- debug
...etc.
- release
...etc.
这是官方建议的结构
建议读者先创立资料夹目录
再开始coding
结构类似这样
----------------------------------------
方法1. mingw + cmake
----------------------------------------
1-1. 需要安装的程式:
(1) camke
(2) mingw32或mingw64
(3) 确认 cmake mingw的bin资料夹有在环境变数path里面
(通常要自行设定)
1-2. 使用方式
(0) cd projectdir/build/debug
先到建置的路径
build/debug build/release都可以
(1) cmake ../../src -G "MinGW Makefiles"
使用Windows的CMD不会有问题
用git-bash记得要先把git-bash的bin路径加入path环境变数
否则会有问题
如果照上面设定第一次执行有问题(找不到sh.exe)
通常执行第二次就OK了XD
再不然就换回windows-CMD去执行指令吧
最後记得大小写别打错!
之前build opencv失败过
可参考
https://tinyurl.com/ybl7lw78
cmake指令加上-DBUILD_TESTS=OFF选项
(2) mingw32-make
(3) 执行程式测试
----------------------------------------
方法2. M$VC + cmake
----------------------------------------
2-1. 需要安装的程式:
(1) camke
(2) visual studio 2017 + MSBuild-15
(现在直接抓最新板是这个版本)
(3) 确认 cmake MSBuild-15 VS2017-msvc的bin资料夹有在环境变数path里面
(通常要自行设定)
2-2. 使用方式
(0) cd projectdir/build/debug
先到建置的路径
build/debug build/release 都可以
(1) cmake ../../src -G "Visual Studio 15 2017 Win64"
15是MSBuild的版本
2017是visual studio的版本
Win64是64位元,若去除,则会建立32位元版本
注意大小写别打错
(2) MSBuild.exe XX.sln
.sln相信很多用过visual studio的人都知道他是专案档
cmake会建置出visual studio的专案档
只要MSBuild XX.sln(XX是你的专案名称)即可完成建置
(3) 执行程式测试
===================
结论
===================
虽说在win上两个方式都可以
不过我还是建议方法2
尤其有再做cross-platform的人更建议2了
有些lib比方说opencv opencl cuda
在windows上都有prebuild的版本
prebuild版本都是用MSVC去编译的
所以只能选择方法2
当然如果想要挑战一下
方法1也不是说不行
我之前用mingw64 Build opncv失败
(2018.9.27无聊乱玩重新编译就过了
详见更新处)
就没在试过方法1就是了qq
===================
参考资料
===================
wiki book for cmake :
https://tinyurl.com/ycv5hafh
cmake-generators(7) :
https://tinyurl.com/ldff4vs
--
我老婆-子瑜,不服出来湾阿
https://imgur.com/sCghzuF
https://imgur.com/JvAE0Qu
https://imgur.com/k9PCODr
https://imgur.com/CZmFmeq
https://imgur.com/S7FgYgF
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 120.105.133.190
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1537865034.A.AC9.html
※ 编辑: dzwei (120.105.133.190), 09/25/2018 17:04:19
1F:推 bigbite: 教学文先推 09/25 17:43
2F:推 alan23273850: 快m起来 09/25 18:12
实际上写起来还是要点进去我给的reference先看一下
那些只是最基本 可以用在大学/硕士的作业/论文
实务上要把cmake写的好 其实有不少技巧(很多我还不知道qq)
其实还有一个qt的qmake可以用
我也很推这个
不过导出dll的时候就要注意一些事情
※ 编辑: dzwei (120.105.133.190), 09/25/2018 18:25:54
3F:推 eye5002003: 我会建议使用cmake-gui,切换option会比较方便 09/25 18:36
4F:→ eye5002003: build资料夹不用固定放在专案资料夹里面,这样比较灵活 09/25 18:37
我觉得一开始使用cmake gui 其实蛮痛苦的QQ
5F:→ eye5002003: 可以(debug/release)X(shared/static)各自建立一个 09/25 18:38
6F:→ eye5002003: MinGW不会强制建立debug资料夹,VS才会(可以叫它住手) 09/25 18:41
你说的应该是设定bin output吧~
※ 编辑: dzwei (120.105.133.190), 09/25/2018 18:44:19
7F:推 eye5002003: VS不是会在bin output位置建立debug资料夹吗?可以要求 09/25 19:15
8F:→ eye5002003: VS别这麽做,设定RUNTIME_OUTPUT_DIRECTORY_DEBUG便可 09/25 19:16
OK 我了解了
※ 编辑: dzwei (36.234.251.15), 09/27/2018 02:01:29
9F:推 Ryspon: 前几个月刚试过 (1) 是用 cmake-gui build 给 VS code 用 09/28 03:36