《gcc五分鐘系列》第十四節:預編譯期選項(一)——I

《gcc五分鐘系列》第十四節:預編譯期選項(一)——I

    相信大家對include指令有所瞭解,相信能夠區別引號和尖括號的作用。
    簡單來說,
    (1)引號的作用:先在當前目錄下搜索文件,然後在系統目錄下搜索文件。
    (2)尖括號的作用:僅在系統目錄下搜索文件。
   
    但是,如果大家做過Qt的開發,就會發現:
    (1)包含一個Qt庫的頭文件時,需要用尖括號即可。
    (2)Qt庫的頭文件並不在系統目錄下。
        例如,我用的是ubuntu linux maverick,使用apt-get安裝qt4。
        以<QObject>這個頭文件爲例,它的存放路徑是/usr/include/qt4/QtCore/QObject 。
    那麼Qt是如何做到的呢?
   
    我們可以打開qmake生成的Makefile,看到Qt在編譯參數的變量中加上了這樣一句:
    -I/usr/include/qt4/QtCore
   
    這個-I是gcc的一個選項,它的作用是把一個路徑加入到系統路徑,這樣當使用include指令時,就可以用尖括號來指定文件。
    那麼怎麼指定多個路徑呢?多寫幾遍就可以了!
   
    -I/usr/share/qt4/mkspecs/linux-g++ -I../../../dgp/othello/client -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I../../../dgp/Dlut-Game-Platform/api/include -I../../../dgp/roommodel/include/client -I../../../dgp/roommodel/include/common -I. -I. -I../../../dgp/othello/client -I.
   
    可以用絕對路徑、相對路徑。甚至可以把當前路徑加入到系統路徑中,這樣就可以用尖括號來指定當前目錄下的一個文件了。
   
    本節完。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章