簡體   English   中英

如何在 CLion 中鏈接庫?

[英]How to link libraries in CLion?

我一直在這個問題上一段時間了,找不到任何東西來解決我的問題。 我正在嘗試在我的程序中使用 ncurses.h 庫,但 linker 失敗並告訴我我有未定義的符號。 我通過創建一個名為include的新文件夾並將 ncurses.h 的位置從/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/ncurses.h復制到新文件夾來解決此問題。 然后我將此行放入我的 CMakeLists.txt 文件中: target_link_libraries(<project name> 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 package。 find_package()將返回CURSES_INCLUDE_DIRCURSES_LIBRARY環境變量以及包含文件和庫的位置。

以下是適用於 macOS 上的 CLion 的最小示例:

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})

測試.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;
}

暫無
暫無

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

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