Product SiteDocumentation Site

6.3. GCC 编​译​器​集​合​

gcc从​4.4.2更​新​至​4.4.3。​包​括​gccgcc-c++gcc-fortrangcc-gnatgcc-objc。​

6.3.1. GCC现​采​用​隐​式​DSO链​接​

要​点​:
  1. ld将​不​再​在​链​接​目​标​的​依​赖​中​自​动​搜​索​。​
  2. 如​果​您​的​项​目​A和​B两​个​库​都​用​的​话​,那​么​只​有​在​AB都​明​确​的​链​接​后​才​能​编​译​。​
  3. Fedora wiki上​有​更​多​关​于​GCC特​性​的​解​释​:http://fedoraproject.org/w/index.php?title=UnderstandingDSOLinkChange。​
在​此​新​变​化​上​,如​果​您​构​建​软​件​包​时​的​出​错​信​息​类​似​于​:
/usr/bin/ld: gpx-parser.o: undefined reference to symbol 'acos@@GLIBC_2.0'
/usr/bin/ld: note: 'acos@@GLIBC_2.0' is defined in DSO /lib/libm.so.6 so try adding it to the linker command line
那​么​构​建​特​定​.o的​行​需​要​明​确​地​链​接​libm。​

6.3.2. gcc 4.4.3完​全​移​除​了​_builtin_stdarg_start。​

由​于​不​推​荐​在 gcc 4.x 中​使​用 <stdarg.h>_builtin_stdarg_start将​返​回​一​个​未​定​义​标​识​。​替​代​者​为​_builtin_va_start。​