如何在CLion中链接库?

如何在CLion中链接库?,c,linker,C,Linker,我解决这个问题已经有一段时间了,找不到任何方法来解决我的问题。我试图在我的程序中使用ncurses.h库,但链接器失败,并告诉我有未定义的符号。我通过创建一个名为includes的新文件夹并将ncurses.h的位置从/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/ncurses.h复制到新文件夹中,修复了这个问题。然后我将这一行放入我的CMakeLists.txt文件:target\u link\u库(i

我解决这个问题已经有一段时间了,找不到任何方法来解决我的问题。我试图在我的程序中使用ncurses.h库,但链接器失败,并告诉我有未定义的符号。我通过创建一个名为includes的新文件夹并将ncurses.h的位置从
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/ncurses.h
复制到新文件夹中,修复了这个问题。然后我将这一行放入我的CMakeLists.txt文件:
target\u link\u库(includes/ncurses.h)
。但随后我又出现了另一个错误,即
ld:library not found for-lincludes/ncurses.h
。我尝试过使用
add_library()
,但这给了我一个错误提示:

The target name "includes/ncurses.h" is reserved or not valid for certain
  CMake features, such as generator expressions, and may result in undefined
  behavior.

有人有其他建议吗?

要找到
ncurses
库的位置,您需要使用
find_package()
找到
Curses
包。
find_package()
将返回
CURSES_INCLUDE_DIR
CURSES_库
环境变量以及INCLUDE文件和库的位置

以下是在CLion on macOS上使用的最小示例:

CMakeLists.txt

cmake_minimum_required(VERSION 2.9)
project(test)

find_package(Curses REQUIRED)
include_directories(${CURSES_INCLUDE_DIR})

add_executable(test test.c)
target_link_libraries(test ${CURSES_LIBRARY})
test.c

#include <ncurses.h>

int main()
{
    initscr();          /* Start curses mode          */
    printw("Hello World !!!");  /* Print Hello World          */
    refresh();          /* Print it on to the real screen */
    getch();            /* Wait for user input */
    endwin();           /* End curses mode        */

    return 0;
}
#包括
int main()
{
initscr();/*开始诅咒模式*/
printw(“Hello World!!!”;/*打印Hello World*/
刷新();/*将其打印到真实屏幕上*/
getch();/*等待用户输入*/
endwin();/*结束诅咒模式*/
返回0;
}

这是否回答了您的问题@jordanvrtanoski这个问题没有一个答案能回答我的问题。当更新cmakelist.txt文件时,除了在构建程序时出现相同的
ld:library not found错误
之外,没有任何异常。我将发布简短的工作示例