【发布时间】:2017-09-19 02:29:36
【问题描述】:
在您标记为重复之前,我在 * 上阅读了 8 个与此类似的不同问题,在其他地方更是如此。如果这些答案中的任何一个解决了我的问题,我就不会发布这个。
我在 SDL2 库中使用了这个完全相同的模板,没有任何问题,我所做的唯一更改是将“SDL2”更改为“Curses”以及 set(CURSES_NEED_NCURSES TRUE) 行。 (对于任何想知道的人来说,如果没有那条线,这仍然会失败)
是的,我已经安装了它,我可以使用gcc main.c -lncurses 轻松编译它而不会出现问题。
cmake_minimum_required (VERSION 2.6)
project (ncurses-practice)
# Version info
set(CMake_ncurses-practice_VERSION_MAJOR 1)
set(CMake_ncurses-practice_VERSION_MINOR 0)
# Common Variables
set(CMAKE_BINARY_DIR ${CMAKE_SOURCE_DIR}/bin)
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR})
set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR})
set(SRC ${CMAKE_SOURCE_DIR}/src)
set(HDRS ${CMAKE_SOURCE_DIR}/headers)
set(CMAKE_C_FLAGS " -Wall")
# Set Ncurses
set(CURSES_NEED_NCURSES TRUE)
find_package(Curses)
# Debug
set(CMAKE_BUILD_TYPE Debug)
# Source Files
set(SRC_FILES
${SRC}/main.c
)
# Included directories
include_directories("src" "headers" ${CURSES_INCLUDE_DIRS})
# Generate Executable
add_executable(a.out ${SRC_FILES})
# Add libraries here after the project name
target_link_libraries(ncurses-practice ${CURSES_LIBARIES})
【问题讨论】:
-
任何错误信息?
-
可能与错误无关,但是:
set(CMAKE_BINARY_DIR ...)- 从不 设置CMAKE_BINARY_DIR变量。许多外部和内部脚本假定它指向*二进制目录。set(CMake_ncurses-practice_VERSION_MAJOR 1)- 这里的“CMAKE”应该是大写的。否则变量对 CMake 没有意义。 -
你的 CMAKE_MODULE_PATH 中有 FindCurses,cmake 吗?