http://blog.csdn.net/stpeace/article/details/49408665
? 在本文中, 我們來聊聊gcc中三個常見的參數, 也即-I, -L和-l
? ??? ? 一. 先說 -I ? (注意是大寫的i)
? ? ? ? 我們先來看簡單的程序:
? ? ? ? main.c:
? ? ? add.c: ? ? ? add.h:? ? ? 編譯鏈接運行如下:
? ? ? ?我們看到, 一切正常。 gcc會在程序當前目錄、/usr/include和/usr/local/include目錄下查找add.h文件, 剛好有, 所以ok.
? ? ? ?我們進行如下操作后再編譯, 卻發現有誤, 不怕, 我們用-I就行了:
? ? ? ?上面把add.h移動到inc目錄下后, gcc就找不到add.h了, 所以報錯。 此時,要利用-I來顯式指定頭文件的所在地, ?-I就是用來干這個的:告訴gcc去哪里找頭文件。
? ? ? ?二. 再來說-L(注意是大寫的L)
? ? ? ?我們上面已經說了, -I是用來告訴gcc去哪里找頭文件的, 那么-L實際上也很類似, 它是用來告訴gcc去哪里找庫文件。 通常來講, gcc默認會在程序當前目錄、/lib、/usr/lib和/usr/local/lib下找對應的庫。 -L的意思很明確了, 就不在贅述了。
? ? ? ?三. 最后說說-l (注意是小寫的L)
? ? ? ?我們之前討論過linux中的靜態庫和動態庫, -l的作用就是用來指定具體的靜態庫、動態庫是哪個。?
? ? ? ?請參考我之前的文章:
? ? ??如何在linux下寫靜態鏈接庫并賣給別人?
? ? ? http://blog.csdn.net/stpeace/article/details/47030017
? ? ?如何在linux下寫動態鏈接庫并賣給別人??
? ? ? http://blog.csdn.net/stpeace/article/details/47047679
??
??gcc編譯出現undefined reference to 'pthread_create'的解決方法
?
? ? ? ?http://blog.csdn.net/stpeace/article/details/43282611
? ? ??
? ? ? ?OK, 都說完了, 希望對大家有所幫助。
? ? ? ?睡覺。