当前位置: 技术问答>linux和unix
安装了库,但是链接的时候总是出错
来源: 互联网 发布时间:2017-04-30
本文导语: 为了尝试开源的cstl库,需要装cmockery库,但是这个库总是装不好。 按照INSTALL文件中的要求,make, make check, make install都没有报错。但是用的时候总是会在链接的时候报错。 我的测试代码:(直接从cmockery的google code...
为了尝试开源的cstl库,需要装cmockery库,但是这个库总是装不好。
按照INSTALL文件中的要求,make, make check, make install都没有报错。但是用的时候总是会在链接的时候报错。
我的测试代码:(直接从cmockery的google code上扒下来的)
链接的时候会报错:
run_tests.o:在函数‘main’中:
run_tests.c:(.text+0x36):对‘_run_tests’未定义的引用
collect2: 错误: ld 返回 1
这个问题应该是找不到定义。我的库安装的位置是/usr/local/bin,并且我已经把这个路径加在了/etc/ld.so.conf文件里,也运行了/sbin/ldconfig将这个目录加载到cache里。我还尝试了环境变量LD_LIBRARY_PATH和LD_RUN_PATH,以及直接指定链接库的位置
gcc -L/usr/local/lib run_tests.o
但都不行,还是一样的错误。
求助。
按照INSTALL文件中的要求,make, make check, make install都没有报错。但是用的时候总是会在链接的时候报错。
我的测试代码:(直接从cmockery的google code上扒下来的)
1 #include
2 #include
3 #include
4 #include
5
6 // A test case that does nothing and succeeds.
7 void null_test_success(void **state) {
8 }
9
10 int main(int argc, char* argv[]) {
11 const UnitTest tests[] = {
12 unit_test(null_test_success),
13 };
14 return run_tests(tests);
15 }
链接的时候会报错:
run_tests.o:在函数‘main’中:
run_tests.c:(.text+0x36):对‘_run_tests’未定义的引用
collect2: 错误: ld 返回 1
这个问题应该是找不到定义。我的库安装的位置是/usr/local/bin,并且我已经把这个路径加在了/etc/ld.so.conf文件里,也运行了/sbin/ldconfig将这个目录加载到cache里。我还尝试了环境变量LD_LIBRARY_PATH和LD_RUN_PATH,以及直接指定链接库的位置
gcc -L/usr/local/lib run_tests.o
但都不行,还是一样的错误。
求助。
|
实在不没办法,试试把库拷贝到当前目录下直接 -L 试试!
感觉还是库没导入对!
|
gcc -L/usr/local/lib -l引用库 ...
你只给个目录是不行的,需要增加-l,后面加你需要引用的库。找到_run_tests在如个库中,引用上应该就可以了
你只给个目录是不行的,需要增加-l,后面加你需要引用的库。找到_run_tests在如个库中,引用上应该就可以了