当前位置: 首页 > 面试题库 >

在Linux上使用ncurses时的未定义参考

贝镜
2023-03-14
问题内容

我正在尝试开始在Linux上使用ncurses开发程序。我什至无法获取Hello World示例进行编译。这是代码:

#include <curses.h>

int main()
{         
        initscr();
        printw("Hello, world.");
        refresh();
        getch();
        endwin();
        return 0;
}

当我尝试编译时,我得到:

hello.c:(.text+0x12): undefined reference to `initscr'

对于那些所谓的函数。

我通过apt-get以及下载源代码并进行编译,安装等安装了ncurses。

我已经试过#include这两个curses.hncurses.h

到底是怎么回事?


问题答案:

-lcurses链接时是否使用了该选项?

包括头文件可以使代码进行编译(因为编译器从.h文件中知道函数调用的样子),但是链接器需要库文件才能找到要链接到程序中的实际代码。



 类似资料:
  • ncurses 提供字符终端处理库,包括面板和菜单。它提供了一套控制光标、建立窗口、改变前景/背景颜色及处理鼠标操作的函数,使用户在字符终端编写应用程序时绕过了那些恼人的底层机制。简而言之,它是一个可以使应用程序直接控制终端屏幕显示的函数库。 这个软件既可以采用 RPM 包方式安装,也可以采用源码包方式安装。但是不用两种包都安装,只要安装一种即可。 1) 方法一:安装RPM的ncurses包 这里

  • 问题内容: 我可以毫无问题地创建一个共享库。我创建了libcbitcoin.so(没有错误),并尝试通过可执行文件以及OpenSSL库与之链接。我使用以下命令: bin目录是库的位置。obj目录包含我希望链接到可执行文件的目标文件。在命令中,我使用-L,-l和- rpath选项,我认为这是在Linux中进行链接所需的全部。由于出现类似以下的错误,看来我错了: 在库中找到CBNewByteArray

  • 在我使用的数组中。查找以查找对象并将其属性设置为某个值。我只想在有值的情况下设置名称。即;检查以下未定义的是我的数组,我正在使用。查找以查找对象并设置其名称。我只想在找到id==checkid的对象时进行设置。

  • 问题内容: 所以我得到了错误:即使我包含了semaphore.h标头,也出现了“对sem_open()的未定义引用”。我所有的pthread函数调用(mutex,pthread_create等)都发生了同样的事情。有什么想法吗?我正在使用以下命令进行编译: g ++’/home/robin/Desktop/main.cpp’-o’/home/robin/Desktop/main.out’ 问题答案

  • 我尝试在axios中使用Post方法发送一些数据,但是代码的结果没有定义。这是我使用axios发布http请求的代码: 这个代码怎么了?

  • 我使用带有TypeScript的react router v5.1,并具有以下路由配置: 我尝试访问组件中的url参数(TokenName),使用useParams挂钩,如下所示: 然而,typescript认为参数可以是未定义的: 这是没有意义的,因为如果URL中缺少参数,则react router将不匹配此路由。 在这种情况下,我如何修改打字?