重複としてマークする前に、私はStackoverflowでこのような8つの質問を読んだことがあります。これらの回答のいずれかが私の問題を解決した場合、私はこれを投稿しません。CMake 3.9.1:ライブラリncursesを見つけることができません
この正確なテンプレートを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})
すべてのエラーメッセージに変更できますか? – arrowd
おそらくエラーとは無関係ですが、 'set(CMAKE_BINARY_DIR ...)' - **決して 'CMAKE_BINARY_DIR'変数を設定しないでください。多くの外部および内部のスクリプトは、それがトップレベルのバイナリディレクトリを指していると想定しています。 'set(CMake_ncurses-practice_VERSION_MAJOR 1)' - "CMAKE"はここでは大文字でなければなりません。さもなければ変数はCMakeに意味を持たない。 – Tsyvarev
あなたのCMAKE_MODULE_PATHに、FindCurses、cmakeがありますか? –