6

我成功跑了sudo apt-get install libncurses5-dev

然后在我的 Eclipse 窗口中尝试构建以下HelloWord.cpp程序:

#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;
}

我收到以下错误:

Invoking: GCC C++ Linker
g++ -m32 -lncurses -L/opt/lib -o "Test_V"  ./src/curseTest.o ./src/trajectory.o ./src/xJus-epos.o   -lEposCmd
/usr/bin/ld: cannot find -lncurses
collect2: error: ld returned 1 exit status
make: *** [Test_V] Error 1

看起来编译器正在搜索 ncurses 库但找不到它?我检查/usr/lib了那里的库不存在,所以我需要手动链接那里的 ncurses 库 - 我认为 get-apt 安装程序会自动执行此操作吗?

4

2 回答 2

9
g++ HelloWorld.cpp -lncurses -o HelloWolrd

如果您有 32 位计算机,gcc compile m32 auto. 如果你有一台 64 位的机器并且你想编译 32 位你

于 2013-11-22T12:44:39.763 回答
2

您的论点顺序不正确。在指定要链接的库之前,您必须先指定所有源文件,然后再指定链接器搜索目录。你的命令应该是这样的:

g++ HelloWorld.o -L/opt/lib -lncurses -o HelloWorld

取自@ChrisDodd 的评论

您的选项顺序错误 --L必须在之前-l,并且两者都必须在之后.o

于 2020-07-18T11:25:13.340 回答