版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

-W编译选项用于生成警告信息,常用的是-Wall,表示生成所有警告信息,但其实这个选项是可以跟具体参数的,跟上具体参数时表示生成或禁止某类警告信息,比如-Wunused-variable表示生成变量已定义但未使用警告,而如果要禁止生成该类警告,则使用-Wno-,比如-Wno-unused-variable表示禁止生成变量未使用警告。

-W<letter>和-Wno-<letter>的形式也适用于-f开头的选项,比如-fomit-frame-pointer和-fno-omit-frame-pointer,以及-fsigned-char和-fno-signed-char。

-Wno 系列的编译选项文档说明:https://gcc.gnu.org/onlinedocs/gcc-4.4.0/gcc/Warning-Options.html

...

要想通过dladdr获取符号的名称和地址,必须在编译时加入-rdynamic链接选项,表示把所有符号(而不仅仅只是程序已使用到的外部符号)都添加到动态符号表(即.dynsym表)里,以便那些通过 dlopen() 或 backtrace() (这一系列函数使用.dynsym表内符号)这样的函数使用。


编译时指定运行时动态库的搜索路径: -Wl,-rpath=.

指定系统搜索动态库的路径:LD_LIBRARY_PATH  /etc/ld.so.conf