使用CMake生成sln项目和VS工程遇到的问题

本文详细介绍如何在Visual Studio环境中使用CMake构建工程,并生成sln项目文件,包括配置环境变量、创建CMakeLists.txt文件及编译步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用vs运行cmake后的工程

1、单个文件示例:
1) 首先建立文件夹CMakeTest/Src
2) 在文件夹Src中建立两个文件main.c和CMakeLists.txt
3) main.c:
#include <stdio.h>

int main()
{
     printf("hello world.");
     getchar();
     return 0;
}
4) CMakeLists.txt
PROJECT (HELLO)

SET (SRC_LIST main.c)

ADD_EXECUTABLE (hello ${SRC_LIST})
5) 打开:开始--Microsoft Visual Studio 2012--Visual Studio Tools--VS2012 x86 Native Tools Command Prompt

 6) 进入到CMakeTest/build/Src目录,执行以下代码
mkdir build & cdbuild
cmake .. -G"NMake Makefiles"
nmake

 

 

学习使用CMake构建工程

转自:http://blog.youkuaiyun.com/alex_my/article/details/18982363  (学习使用CMake的详细过程参考链接)

 

使用CMake生成sln项目

 

1) 以上是一些基本应用,现在我们将要生成sln项目供VS直接使用,当然,也可以生成供XCODE使用或者linux等等。

 

2) 本机配置:WIN7 X64,VS2012 X64。本次使用CMakeTest/Src5做为示例。

 

3) 运行CMake, 将Src5包含在源文件中,在Src5下新建build目录(也可以先不建,会自动生成),将其包含到生成文件中。

 

如图:

 

# 配图 cmake_step71.png

 

 

4) 运行上图中红框指示的Configure按钮,在弹出框中选择Visual Studio 11 WIN64(根据你的需要进行选择,注意的是VS2012 对应

 

的版本号是110,因此选11, VS2010 对应的版本号是100,因此选10)。点击下图中红框指示的Finish按钮。

 

# 配图 cmake_step72.png

 

 

5) 运行结束后如下图所示,如果有错误,会在红框指示区提示。请再次点击 Configure按钮。

 

# 配图 cmake_step73.png

 

 

6) 运行结束后如下图所示, 然后请点击Generate按钮。

 

# 配图 cmake_step74.png

 

 

7) 打开CMakeTest/Src5/build,会发现生成的HELLO.sln。

 

# 配图 cmake_step75.png

 

 

8) 用VS2012将项目打开,选择ALL_BUILD为启动项,编译。

 

# 配图 cmake_step76.png

 

 

 

ps:

 

'nmake' 不是内部或外部命令,也不是可运行的程序或批处理文件。 
 参考:http://blog.163.com/lvan100@yeah/blog/static/68117214201332761143157
如果你也遇到了这个问题,那么我敢肯定90%的情况下你使用的cmd是普通的cmd!
'nmake' 不是内部或外部命令,也不是可运行的程序或批处理文件。
解决的问题很简单,使用VS2010自带的cmd。

 

 

 

若是显示“ 'cmake' 不是内部或外部命令,也不是可运行的程序或批处理文件。”
 参考:http://blog.youkuaiyun.com/solox1983/article/details/6567342 
环境变量的配置。
     要在"我的电脑"->右键属性—>高级->环境变量->PATH,增加两个工具的bin文件夹的目录。这样才能在CMD 或者直接编译和生成makefile。
http://www.cmake.org/download/
Windows Source (has \r\n line feeds)    cmake-3.2.0-rc2.zip
Windows ZIP    cmake-3.2.0-rc2-win32-x86.zip

 

 

 

 

vs2013(error C2039: “min”: 不是“std”的成员)

http://blog.lishewen.com/post/2013/11/24/cocos2d-x-project-in-vs2013-compiler-error-solution

在VS2013编译cocos2d-x的win32项目时,会报错误:

error C2039: “min”: 不是“std”的成员

error C2873: “min”: 符号不能用在 using 声明中

这时需要打开对于报错的.cpp文件,在头部加入

1#include <algorithm>

 

无法启动程序 系统找不到指定的文件

vs默认的项目是ALL_BUILD这个项目,但是我的默认启动项目应该是HelloCmake project ,所以通过移除all_build和zero项目是可以的,另外通过右键将helloCmake设为默认启动项目也是可以的

 

error C4996: 'fopen': This function or variable may be unsafe.
参考:http://www.cnblogs.com/liwenbin/p/3488400.html

 

编译lua源码时,使用vs2012,遇到如下错误。

1>------ 已启动生成: 项目: 20130925, 配置: Debug Win32 ------
1>  stdafx.cpp
1>d:\code\20130925\20130925\stdafx.cpp(18): error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>          d:\vs2012\vc\include\stdio.h(218) : 参见“fopen”的声明
1>  20130925.cpp
1>  正在生成代码...
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ========== 

解决方案,项目 ->属性 -> c/c++ -> 预处理器 -> 点击预处理器定义,编辑,加入_CRT_SECURE_NO_WARNINGS,即可。

转载于:https://my.oschina.net/chaenomeles/blog/1068741

### 如何使用 CMake 为 libcurl 项目生成构建工程文件 为了成功使用 CMake 工具为 `libcurl` 项目生成构建工程文件,可以按照以下方法操作: #### 准备工作 确保已安装最新版本的 CMake 所需的开发环境(如 Visual Studio 或其他 IDE)。此外,下载并解压 `libcurl` 的源码包。 #### 配置 CMakeLists.txt 文件 在 `libcurl` 开源代码的根目录中存在一个名为 `CMakeLists.txt` 的文件[^1]。此文件包含了用于生成 Windows 平台上的 Visual Studio 工程文件的相关配置内容。可以通过修改该文件来调整项目的特定需求。 #### 使用命令行生成 VS 工程文件 运行以下命令以生成适用于当前系统的构建文件: ```bash cmake -S . -B build -G "Visual Studio 17 2022" ``` 上述命令中的 `-S .` 表示指定源码目录为当前路径;`-B build` 则表示目标二进制文件存储位置为子目录 `build` 中;而 `-G "Visual Studio 17 2022"` 是指明所使用生成器类型为 Visual Studio 2022 版本[^2]。 如果需要自定义某些选项,比如启用 OpenSSL 支持,则可以在命令后面追加相应的参数: ```bash cmake -S . -B build -DCMAKE_INSTALL_PREFIX=/usr \ -DBUILD_SHARED_LIBS=ON \ -DCURL_USE_OPENSSL=ON \ -DOPENSSL_ROOT_DIR=C:/openssl/ \ -DOPENSSL_INCLUDE_DIR=C:/openssl/include/ \ -DOPENSSL_CRYPTO_LIBRARY=C:/openssl/lib/crypto.lib \ -DOPENSSL_SSL_LIBRARY=C:/openssl/lib/ssleay32.lib ``` 这里设置了多个关键变量,包括但不限于: - `BUILD_SHARED_LIBS`: 控制是否构建动态链接库; - `CURL_USE_OPENSSL`: 启用对 OpenSSL 库的支持; - `OPENSSL_*_DIR`: 设置 OpenSSL 相关资源的具体路径信息[^3]^,^[^4]。 完成以上步骤之后,在执行 configure 过程期间可能会遇到错误提示关于缺失的头文件或者静态库等问题,请依据报错消息补充完整这些外部依赖关系后再重新尝试 configure 操作直至顺利结束为止。 最后打开新创建出来的解决方案(.sln),就可以继续下一步骤了——即编译整个工程项目以及测试其功能正常与否等后续流程。 ```python print("LibCurl Project Generated Successfully!") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值