Linux编译选项

1.指定库路径

1):-rpath: 单独指定“运行”的时候,去找的目录,交叉编译时方便指定嵌入式设备上的库路径

eg:-Wl,--rpath=$(dir)

2):-rpath_link (或者 -rpath-link):在-rpath基础上,当库间存在依赖时,例如你显示指定的需要 FOO.so,但是 FOO.so 本身是需要 BAR.so 的,后者你并没有指定,而是 FOO.so 引用到它,这个时候,会先从 -rpath-link 给的路径里找(库间存在依赖时)

eg:  -Wl,--rpath-link=$(dir)

3):在/etc/ld.so.config中添加哭路径,链接和运行时去找的目录,添加后执行“sudo ldconfig”将库相关性息写入到ld.so.cache中,使得添加的库生效,

4):LD_LIBRARY_PATH环境变量用于在程序运行期间查找动态链接库时指定除了系统默认路径之外的其他路径,注意,LD_LIBRARY_PATH中指定的路径会在系统默认路径之前进行查找,交叉编译时方便指定嵌入式设备上的库路径,仅推荐在调试时使用

5):将库添加到“/lib”或者“/usr/lib”中,链接和运行时库路径,如要添加的库不经常使用,不建议在此目录中添加库文件(不容易完全删除)

6):LIBRARY_PATH环境变量用于在程序编译期间查找动态链接库时指定查找共享库的路径,例如,指定gcc编译需要用到的动态链接库的目录

7):-L指定链接和运行时头文件路径

上述编译选项可自行手动添加,但某些库提供了.pc文件,可通过命令pkg-config得到相关编译选项,但需要添加PKG_CONFIG_PATH环境变量指明.pc文件路径。eg:pkg-config --libs--cflags opencv;opencv是.pc文件,--libs和--cflags指明需要得到哭文件信息和头文件信息

2.指定头文件

1):-I指定编译时头文件路径

发布了10 篇原创文章 · 获赞 1 · 访问量 519

猜你喜欢

转载自blog.csdn.net/qq_41468222/article/details/103171071
今日推荐