一次windows下使用cmake遇到的问题
背景
在windows下的cmake和mingw提供的make,在windows环境下进行了简单尝试,结果发现make的时候失败:
#include <iostream>
int main(){
std::cout << "Hello, makefile." << std::endl;
return 0;
}
CMakeList如下:
project(test)
add_executable(test test.cpp)
非常简单的语法,但在项目目录创建了build目录以后:
cd build; cmake ..
make
出错了:make: *** No targets specified and no makefile found. Stop.,是的,make出错,但这时候还不懂问题所在,以下是build目录的生成文件:

如上,这种样式的build,不就满满的vs风嘛?!后来才在一位博主的文章中得到灵感,确定了cmake时不明确指定平台,它就会自动读取系统信息,然后进行系统相关的默认生成,所以上面需要用上make,就需要明确一点:
PS D:\Desktop\test\build> cmake .. -G "Unix Makefiles"
-- The C compiler identification is GNU 8.1.0
-- The CXX compiler identification is GNU 8.1.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: D:/software/mingw-w64/bin/gcc.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: D:/software/mingw-w64/bin/c++.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: D:/Desktop/test/build
PS D:\Desktop\test\build> ls
目录: D:\Desktop\test\build
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2023/6/8 16:17 CMakeFiles
-a---- 2023/6/8 16:17 16598 CMakeCache.txt
-a---- 2023/6/8 16:17 1554 cmake_install.cmake
-a---- 2023/6/8 16:17 5337 Makefile
PS D:\Desktop\test\build> make
[ 50%] Building CXX object CMakeFiles/test.exe.dir/test.cpp.obj
[100%] Linking CXX executable test.exe
[100%] Built target test
PS D:\Desktop\test\build> ./test
Hello, cmakefile.
整理一下,cmake的使用,是控制项目有序生成对应系统平台的build,windows下是生成比较标准的vs解决方案,嗯所以很多时候用cmake以后还是用vs打开来编译一下;linux下则是专门生成makefile(当然windows下指定参数来生成也是可以),后面再make就行。
更多文章可以查看
一次windows下使用cmake遇到的问题的更多相关文章
- windows下安装cmake
windows下安装cmake 下载地址 download -> cmake-3.12.0-rc2-win64-x64.msi 安装 验证cmake --version
- Windows下使用CMake进阶
目录 回顾代码工程中有什么 将需要的东西在cmake脚本CMakeLists.txt中申明 一键型编译 使用nmake 使用msbuild 实现一键编译 参考 在CMake入门实践一文中,我们初略的介 ...
- windows下使用cmake编译zlib与libpng libjpeg
win7下使用VS2010编译jpeglib 1.下载源代码下载地址:http://www.ijg.org/files/, 选择最新版本的windows版本压缩包,进行下载. jpeg ...
- Windows下利用CMake和VS2013编译OpenCV
转载自:http://www.chengxulvtu.com/2014/03/19/windows_build-opencv-with-cmake-and-vs2013.html 获取OpenCV ...
- windows下使用cmake+mingw配置makefile
前面一节说了cmake简易使用,但是实际开发中项目文件非常多,使用哪种简易方式会导致代码十分混乱,因此本文介绍一种cmake管理大型项目的demo流程. 具体步骤如下: 1.创建相关的项目目录 cmd ...
- windows 下使用cmake指定visual studio 版本
https://blog.csdn.net/iceboy314159/article/details/87829950
- Windows下VTK6.0.0安装详解(CMake使用说明)
操作系统:Windows7,用到工具:Visual studio.CMake. 1.准备工作 VTK下载: 下载最新VTK稳定版(6.0.0,截至2013年7月)http://www.vtk.org/ ...
- Windows 下使用 MinGW 和 CMake 进行开发
CMake 是个非常棒的项目管理工具,这已经是毋庸置疑的. 一些小工具需要在 win 下开发,所以今天探索使用 MinGW 和 CMake 在 win 下的搭配使用.简单做记录. MinGW 使用 Q ...
- Windows下CMake编译安装OpenCV
Windows下CMake编译安装OpenCV 这是一个面向新手的在windows上运进opencv, helloword的教程. 在这里我们使用vs2019来编译opencv, 并运行一个hello ...
- windows下使用vs进行Proctocol Buffer开发(C++篇)
因工作原因接触Proctocol Buffer(protobuf),至于什么是protobuf,为何使用protobuf,我就不赘述了,百度下都是答案. 今天我介绍的是在windows下使用vs进行p ...
随机推荐
- Redisson实现分布式锁---原理
Redisson实现分布式锁(1)---原理 有关Redisson作为实现分布式锁,总的分3大模块来讲. 1.Redisson实现分布式锁原理 2.Redisson实现分布式锁的源码解析 3.Redi ...
- 阿里云开启ssl证书过程记录 NGINX
作者简介:大家好,我是思无邪,2024 毕业生,某厂 Go 开发工程师.. 我的网站:https://www.yishanicode.top/ ,持续更新,希望对你有帮助. 如果文章或网站知识点有错误 ...
- [业界方案] ClickHouse业界解决方案学习笔记
[业界方案] ClickHouse业界解决方案学习笔记 目录 [业界方案] ClickHouse业界解决方案学习笔记 0x00 摘要 0x01 简介 0x02 OLAP场景的特点 0x03 选型原因 ...
- 十四. Redis 新功能
十四. Redis 新功能 @ 目录 十四. Redis 新功能 1. ACL 2. IO多线程 3. 工具支持 Cluster 4. 其它新功能-介绍 5. 最后: 1. ACL ACL 参考官网: ...
- Luogu P9055 [集训队互测 2021] 数列重排 题解 [ 紫 ] [ 构造 ] [ 数学 ]
数列重排:差点就场切的神仙构造,最后一步想假了,导致我模拟赛荣获 25+5+0 的好成绩! 这题部分分很有启发性,跟着一步一步打基本能想到正解的构造,但也有可能想偏部分分的意思,想假策略. 构造 先看 ...
- DeepSeek本地化部署超简单,比装个office还简单
一.背景 最近DeepSeek太火了,以至于每位伙伴都想尝试,都想说上几句.作为一名程序员,不仅想使用这个DeeptSeek的AI工具,还是用其做更多的事情,比如本地化部署.构建自己的知识库,或者其他 ...
- 天线驻波比&回波损耗
天线驻波比(VSWR),全称为电压驻波比,是衡量天线系统匹配程度的重要参数.它定义为驻波波腹处的电压幅值与波谷处的电压幅值之比.理想情况下,当馈线和天线的阻抗完全匹配时,驻波比为1,表示高频能量全部 ...
- 八米云-N1、机顶盒设置静态地址和PPPOE拨号流程
疑难解答加微信机器人,给它发:进群,会拉你进入八米交流群 机器人微信号:bamibot 简洁版教程访问:https://bbs.8miyun.cn 这里以老毛子路由系统举例: 一.设置静态地址 1.路 ...
- win11 - 设置FTP服务详细教程
题记部分 一.开启FTP服务 https://blog.csdn.net/qq_42142258/article/details/131725760 二.配置FTP服务 https://blog.cs ...
- mysql 登录提示 “is not allowed to connect to this mysql server”
解决方法一 执行 mysql -u root -p 然后输入密码登陆mysql GRANT ALL PRIVILEGES ON . TO 'myuser'@'%' IDENTIFIED BY 'myp ...