gpt4 book ai didi

c - C 程序中 undefined reference

转载 作者:行者123 更新时间:2023-11-30 15:26:13 26 4
gpt4 key购买 nike

我编写了一组 C 文件,其中这些文件中的函数在主 C 文件中使用。我已经编写了头文件,并将它们包含在主 c 文件中。

之前运行得很好。然后,我必须集成逻辑以从该程序访问 mongodb。所以我必须设置C_INCLUDE_PATH来引用mongoc.hbson.h等。我设置如下:

sanuri@ubuntu:~/Desktop/December/SMS_manager$ C_INCLUDE_PATH=.:/usr/local/include:/home/sanuri/Desktop/ETSP/mongo-c-driver-0.98.0/src/mongoc:/home/sanuri/Desktop/ETSP/mongo-c-driver-0.98.0/src/libbson/src/bson
sanuri@ubuntu:~/Desktop/December/SMS_manager$ export C_INCLUDE_PATH

现在 mongoc.hbson.h 已被识别。但是我自己编写的其他 C 文件中的函数无法识别,这些函数与主 C 文件位于同一目录中。我收到以下错误:

/tmp/ccg5BR9V.o: In function `getDetails':
ReceiveSMS.c:(.text+0x130): undefined reference to `str_split'
ReceiveSMS.c:(.text+0x15c): undefined reference to `trimwhitespace'
/tmp/ccg5BR9V.o: In function `getMessageDetails':
ReceiveSMS.c:(.text+0xa80): undefined reference to `authenticate'
/tmp/ccg5BR9V.o: In function `main':
ReceiveSMS.c:(.text+0xbc1): undefined reference to `getNoOfCPUs'
ReceiveSMS.c:(.text+0xbca): undefined reference to `configure'

这些是我编写的三个 C 文件中的函数。请给我一个解决方案。先感谢您! :)

最佳答案

抱歉,您的问题只有部分信息,您还没有给出如何编译/链接的信息。

解决这个问题的方法有很多,我尝试列举一些:一:对于 gcc,您可以提供 -I -L -l 选项

-I include directory path i.e. headers
-L library path say libc.so, libc.a etc.,
-l for library name say -lmy for saying use/link libmy.* library
ex:
a. gcc -o myapp myapp.c -I./include -L./lib -lmy
b. gcc -o myapp myapp.c -I./include ./lib/libmy.a

两个:在 Linux 环境中,gcc 接受 CFLAGS、LDFLAGS 等标志您可以在 Makefile 中使用这些标志$ cat 生成文件

CC=gcc
CFLAGS=-Wall -I./include
LDFLAGS=-lmy -L./lib

SOURCE=main.c

myapp: $(OBJECTS)
$(CC) $(CFLAGS) $(SOURCE) -o myapp $(LDFLAGS)

希望您能学到一些东西,感谢您提供教学机会。

关于c - C 程序中 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27457850/

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