簡體   English   中英

[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("aaaaa\n");
    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_Filesx86\Microsoft Visual Studio 14.0\VC\include\cstdio(36): error C2054: expected '(' to follow 'using' [E:\cmake-test\app.vcxproj]
D:\Program_Filesx86\Microsoft Visual Studio 14.0\VC\include\cstdio(36): error C2061: syntax error: identifier 'using' [E:\cmake-test\app.vcxproj]

如果在那里保留一個空函數:

#pragma once

int main(char** args, int size)
{
    return 1;
}

nmake可以正常運行並輸出可執行文件: app.exe

Windows SDK的包含和庫中沒有指定的問題是什么? 如果是這樣,我該如何配置它們?

文件cstdio可能包含C ++特定的內容。 C ++是C子集的超集,因此並非每個C ++代碼都是有效的C。

CMake將您的.c文件編譯為C,因此出現語法錯誤。

在您的情況下,錯誤的根源是using C語言中不存在的語句的C ++。

要解決此問題,請執行以下操作:

  • #include <stdio.h> (並按原樣編譯為C)

要么

  • 將文件重命名為.cpp (以便將其編譯為C ++)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM