gpt4 book ai didi

c - 无法链接到共享对象中的 ncurses

转载 作者:太空宇宙 更新时间:2023-11-03 23:33:05 25 4
gpt4 key购买 nike

出于某种原因,我在编译使用 ncurses 的共享对象时遇到问题。即使我包含并链接了 -lncurses,编译 .so 文件也会失败。请指教。

#include <string.h>
#include "../include/mod_curse.h" /* Includes ncurses.h and friends */

int OnConsoleCmd(McapiS *API, ArgS *CmdArgs) /* Just ignore these, they're included in mod_curse.h */
{
if(!strcmp(CmdArgs->Data, "help"))
{
API->BPrintf(STD, "\n-- mod_curse.so --\n");

return 0;
}
}

int OnLoad(McapiS *API, va_list Args)
{
initscr(); /* These are the problems */
}

/* Time to clean up and unload the module */
int OnDeload(McapiS *API, va_list Args)
{
endwin();
}

这是生成文件:

CC = clang
CFLAGS = -Wall -fPIC

# Object Files
OBJ = mod_curse.o
# Header Files
INCLUDE = include/mod_curse.h


# Main Module
mod_setup.so: $(OBJ) $(INCLUDE)
$(CC) -shared -Wl,-soname,mod_curse.so,--no-undefined -o ../../mod_curse.so -lncurses $(OBJ)

# Source Files
mod_curse.o: src/mod_curse.c $(INCLUDE)
$(CC) $(CFLAGS) -c src/mod_curse.c

clean:
rm $(OBJ)

错误如下:

3 warnings generated.
clang -shared -Wl,-soname,mod_curse.so,--no-undefined -o ../../mod_curse.so -lncurses mod_curse.o
mod_curse.o: In function `OnLoad':
src/mod_curse.c:(.text+0x81): undefined reference to `initscr'
mod_curse.o: In function `OnDeload':
src/mod_curse.c:(.text+0xb1): undefined reference to `endwin'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [mod_setup.so] Error 1

最佳答案

我需要更改我的 make 命令,让 -lncurses 出现在 $(OBJ) 之后。

关于c - 无法链接到共享对象中的 ncurses,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10744796/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com