【发布时间】:2016-05-11 14:55:41
【问题描述】:
我知道这可能是一个愚蠢的问题,但我看不透,我在这里搜索了其他答案,这些答案与我的非常接近,但是,我仍然不明白该怎么做。
问题是我无法在 Windows 中编译使用 curses.h 的“C”程序(我正在使用带有 MinGW 的 Clion),当我尝试这样做时,它为函数提供了“未定义的引用” curses.h(如 'initscr'、'clear'、...)。
通过 MinGW 安装管理器,我安装了“mingw-32-libpdcurses”(有两个可用的两个不同的类:dev 和 dll;我安装了 dll 一个)。
我正在使用的 CMAKEfile 是这样的:
cmake_minimum_required(VERSION 3.3)
project(Project1)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Werror -lpdcurses")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}")
file(GLOB Project1_SRC
"*.h"
"*.c"
)
add_executable(Project1 ${Project1_SRC})
我应该对其进行哪些更改才能使其与 curses.h 一起编译?
【问题讨论】:
-
我认为你应该将库添加到
CMAKE_EXE_LINKER_FLAGS。 -
嗯...您安装了 dll,但没有安装开发包?我对 MinGW 了解不多,但通常您需要 dev 包来获取头文件。很好奇你得到了一个 linker 错误,而不是关于缺少头文件的编译器错误。确保你没有使用来自不同库版本的头文件,甚至没有使用不同的 curses 发行版。这注定会失败。
标签: c windows cmake undefined-reference pdcurses