[cmake]如何使用cmake在windows上包含和链接系统库
[cmake]how to include and link system libraries on windows using cmake
这是我的cpp代码:
#pragma once
#include <cstdio>
int main(char** args, int size)
{
printf("aaaaan");
return 1;
}
这是我的CMakeLists.txt
cmake_minimum_required(VERSION 3.5)
set(PROJECT_ROOT_PATH "./")
add_executable(app ${PROJECT_ROOT_PATH}/app.c)
我的步骤运行命令如下:
cmake -G "NMake Makefiles" ./
nmake
当我运行nmake时,有很多错误如下:
D:Program_Filesx86Microsoft Visual Studio 14.0VCincludecstdio(36): error C2054: expected '(' to follow 'using' [E:cmake-testapp.vcxproj]
D:Program_Filesx86Microsoft Visual Studio 14.0VCincludecstdio(36): error C2061: syntax error: identifier 'using' [E:cmake-testapp.vcxproj]
如果在那里保留一个空函数:
#pragma once
int main(char** args, int size)
{
return 1;
}
nmake将正常工作并输出一个可执行文件:app.exe
是我没有指定windows SDK的includes和libraries的问题吗?如果是,我如何配置它们?
文件cstdio
可能包含C++特定的内容。C++是C子集的超集,所以不是每个C++代码都是有效的C。
CMake将.c
文件编译为C,因此会出现语法错误。
在您的情况下,错误的来源是C编程语言中不存在的C++using
语句。
要解决问题:
#include <stdio.h>
(并按原样编译为C)
或
- 将文件重命名为
.cpp
(以便将其编译为C++)
相关文章:
- 在CMake中使用find_package时,是否会显式包含标头
- 如何在 cmake 库中包含 libcurl
- Visual Studio 中的 CMake 项目:如何添加其他包含和库目录?
- CMake 错误"源似乎不包含 CMakeLists.txt",路径/库连接问题
- CMake:我们可以为一组不形成可执行文件或库的特定文件指定包含目录吗?
- CMake 包含非 cmake 库的第三方标头
- CMake 包含/源路径有效配置
- Cmake :包含目录 - 父目录
- CMake:C++包含相对于基目录的内容
- cmake:包含目录根目录
- CMake 包含错误(找不到文件、未定义引用)
- 有没有一种很好的跨平台方法可以使用CMake包含外部C++库
- CMake:包含外部项目的错误
- Cmake包含目录
- 如何使用 CMake 包含 NTL
- 如何使Cmake包含gl/gl.h
- 如何将CMake包含和库添加到Visual Studio解决方案中
- CMake包含和源路径-基本设置
- CMake包含路径和源路径与Windows目录路径不同
- CMake:包含目录的排序(如何混合基于系统和用户的包含路径?)