2013年2月27日 星期三
2013年2月21日 星期四
2013年2月20日 星期三
看 GCC 預設幫使用者加了什麼東西
看 GCC 預設幫使用者加了什麼東西
http://www.study-area.org/cyril/opentools/opentools/x869.html
gcc怎麼知道去哪裡找foo.c裡面所include的header檔,連結資料庫 與系統定義呢? 總共有下列來源指定gcc去那找。
- 當初在編譯時指定的(在~gcc/gcc/collect2.c:locatelib()
- 寫在specs內的
- 後來用-D -I -L指定的
- gcc環境變數設定(編譯的時候)
- ld.so的環境變數(這是run time的時候)
- $ echo 'main(){printf("hello world\n");}' | gcc -E -v -
- Using built-in specs.
- Target: i486-linux-gnu
- Configured with: ../src/configure -v --enable-languages=c,c++,fortran,objc,obj-c++,treelang --prefix=/usr
- --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix
- --enable-nls --with-gxx-include-dir=/usr/include/c++/4.1.3 --program-suffix=-4.1 --enable-__cxa_atexit
- --enable-clocale=gnu --enable-libstdcxx-debug --enable-mpfr --enable-checking=release i486-linux-gnu
- Thread model: posix
- gcc version 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)
- /usr/lib/gcc/i486-linux-gnu/4.1.3/cc1 -E -quiet -v - -mtune=generic
- ignoring nonexistent directory "/usr/local/include/i486-linux-gnu"
- ignoring nonexistent directory "/usr/lib/gcc/i486-linux-gnu/4.1.3/../../../../i486-linux-gnu/include"
- ignoring nonexistent directory "/usr/include/i486-linux-gnu"
- #include "..." search starts here:
- #include <...> search starts here:
- /usr/local/include
- /usr/lib/gcc/i486-linux-gnu/4.1.3/include
- /usr/include
- End of search list.
- # 1 "<stdin>"
- # 1 "<built-in>"
- # 1 "<command line>"
- # 1 "<stdin>"
- main(){printf("hello world\n");}
訂閱:
文章 (Atom)