为什么不工作,文件test.c
:
#include <event.h>
int main(void)
{
event_init();
return 0;
}
:gcc -o test.o -c test.c
运行正常,但是
链接:g++ -o test -levent test.o
生产
test.o: In function `main':
test.c:(.text+0x5): undefined reference to `event_init'
collect2: ld returned 1 exit status
因此不能链接为C++
。如何解决这个问题?我需要将其链接为C++
并编译为C
。
这个问题已经问过很多次了。在Linux上,应该在编译命令中将库放在对象文件和源文件之后。所以尝试
g++ -Wall -g -c mytest.cc
g++ -Wall -g mytest.o -levent -o mytest
避免调用您的测试程序test
,这是一个现有的实用程序或shell内置。
作为一个新手,记住总是编译所有警告要求-Wall
和调试-g
,并学会使用gdb