【发布时间】:2012-03-21 22:55:08
【问题描述】:
在我的代码中引用 OpenFEC (openfec.org) 函数时,我遇到了这个问题:
anders@ubuntu:~/workspace/fectest$ gcc -L../openfeclib/ -l'openfec' -I../openfeclib fectest.cpp
/tmp/ccEXLrdc.o: In function `main':
fectest.cpp:(.text+0x17a): undefined reference to `of_create_codec_instance(of_session**, of_codec_id_t, unsigned char, unsigned int)'
fectest.cpp:(.text+0x2db): undefined reference to `of_set_fec_parameters(of_session*, of_parameters*)'
fectest.cpp:(.text+0x347): undefined reference to `of_build_repair_symbol(of_session*, void**, unsigned int)'
fectest.cpp:(.text+0x395): undefined reference to `of_release_codec_instance(of_session*)'
collect2: ld returnerade avslutningsstatus 1
包含这些函数的 c 文件包含在 openfec 库中。
nm ../openfeclib/libopenfec.so | grep of_release_codec 命令给出:
000000000001a294 T of_release_codec_instance
我该如何解决这个问题?
【问题讨论】:
-
库应始终位于源/目标文件之后。换句话说,把
-lopenfec放在命令行的最后。 -
感谢您的回复!错误仍然存在: anders@ubuntu:~/workspace/fectest$ gcc fectest.cpp -L../openfeclib/ -I../openfeclib/ -I../openfeclib -lopenfec /tmp/ccqNtnWi.o: In function
main': fectest.cpp:(.text+0x17a): undefined reference toof_create_codec_instance(of_session**, of_codec_id_t, unsigned char, unsigned int)' fectest.cpp:(.text+0x2db): 对of_set_fec_parameters(of_session*, of_parameters*)' fectest.cpp:(.text+0x347): undefined reference toof_build_repair_symbol(of_session*, void**, unsigned int)' fectest 的未定义引用。 cpp:(.text+0x395): undefined reference t -
您在编译选项中使用了
-lopenfec或-l'openfec'吗?因为后者不正确? -
Appleman1234,感谢您的输入和更正!我也尝试过使用 -lopenfec,它产生了同样的错误。