编译链接常见的问题

来源:互联网 发布:java获取环境变量的值 编辑:程序博客网 时间:2024/05/18 09:07

1.      注意deps/sdk_common/protector 中是否有 linux-aarch64的库。

2.      注意protector的版本号要和st_face版本号对应。St_face版本好在CppBuild.toml文件中。Protector的版本要查询 deps/sdk_common/ CppBuild.toml。

3.      如果遇到了opencv相关的问题,特别是遇到了cv::Exception::Exception构造函数的字样,那应该是gcc版本导致的,可能跟c++11有关,需要重新在tx1上编译一个opencv库。

4.      当遇到-lopencv_dep_cudart这样的问题的时候,需要在CMake缓冲文件中将cmake变量CUDA_USE_STATIC_CUDA_RUNTIME置为OFF(如果不是用CppBuild创建工程的话,可以直接在CMakeLists.txt中将其SET 成OFF)。或者在link.txt文件中将-lopencv_dep_cudart去掉。

5.      如果在链接的时候提示未定义的符号(undefined reference …)很可能是CMakeLists.txt中或者Makefile中未链接到相关的库。

6.      如果在链接的时候提示未定义的符号(undefined reference …)同时又已经链接了相关的库文件(.a, .so),可以用 nm 命令对比查看所涉及的.cpp.o文件和.a(.so)文件,一般是库的版本不对的问题导致的。

0 1