为什么这不起作用,归档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
。
答案 0 :(得分:12)
这个问题已被多次询问。在Linux上,您应该在编译命令中将库放在对象和源文件之后。所以试试
g++ -Wall -g -c mytest.cc
g++ -Wall -g mytest.o -levent -o mytest
避免调用您的测试程序test
,它是现有的实用程序或内置的shell。
作为新手,请记住始终使用-Wall
提出的所有警告和调试-g
进行编译并学会使用gdb