我对 GCC 有疑问,我想以-l
自定义方式使用这些标志。
我想为 指定的对应 libfoo 指定搜索路径-lfoo
,我还想覆盖 GCC 中的任何内部搜索路径,我不希望 GCC 使用任何可以解决符号的随机库,我只希望 GCC指定时使用真正特定的库进行编译-l
。
我知道有诸如此类的实用程序,pkg-config
但我的问题更加以 gcc 为中心,因为我专注于对编译步骤进行更多控制。
我对 GCC 有疑问,我想以-l
自定义方式使用这些标志。
我想为 指定的对应 libfoo 指定搜索路径-lfoo
,我还想覆盖 GCC 中的任何内部搜索路径,我不希望 GCC 使用任何可以解决符号的随机库,我只希望 GCC指定时使用真正特定的库进行编译-l
。
我知道有诸如此类的实用程序,pkg-config
但我的问题更加以 gcc 为中心,因为我专注于对编译步骤进行更多控制。
有一个未记录的语法用于指定 gcc 的绝对库路径:
$ gcc -o test test.c -l:/usr/lib/libfoo.so #(note the colon)
见这里:https ://code.ros.org/lurker/message/20130119.001059.fad11362.de.html
一个更标准的方法就是:
$ gcc -o test test.c /usr/lib/libfoo.so
实际上,使用该-l:
语法的唯一原因是,如果您的搜索路径中有一个同名的冲突库,并且您无法更改搜索路径。