一個簡單的問題。我在示例Makefile中找到了「DLDFLAGS」和「LDFLAGS」。使用的編譯器是gcc。看起來它們都用於連接器。我想知道他們之間有什麼區別。DLDFLAGS和LDFLAGS有什麼區別
4
A
回答
7
LDFLAGS
通常設置爲包含傳遞給鏈接器的選項(因此可能包含所需的庫)。與CFLAGS
一起,這些通常被設置爲開發者環境變量的一部分,並且make
將知道它們,因此將主動查看它們是否被設置並將它們傳遞給編譯器。
例如,如果我在我的環境設置CFLAGS
到-O2 -Wall
,那麼如果我沒有Makefile中鍵入make hello
,使會自動調用編譯器爲gcc -O2 -Wall hello.c -o hello.o
。然後它會以類似的方式調用鏈接器,將LDFLAGS
中的標誌添加到命令行中。
Makefiles可以明確覆蓋LDFLAGS
和CFLAGS
。
DLDFLAGS
另一方面不是一個衆所周知的/定義的變量,所以它可能是特定於該特定的Makefile。您必須閱讀Makefile以瞭解它的使用方式。例如,如果設置了LDFLAGS
,則可以定義要使用的鏈接器標誌 - 讀取Makefile以確認。
0
是不是DLDFLAGS
只是一個預編譯器標誌,定義名爲「LDFLAGS」的宏?
從gcc手冊:
-D名
Predefine name as a macro, with definition 1
相關問題
- 1. 是AM_LDFLAGS之間有什麼區別和LDFLAGS
- 2. 有什麼區別`和$(Bash中有什麼區別?
- 3. 有什麼區別? :和||
- 4. &&和||有什麼區別?
- 5. 「/」和「/ *」有什麼區別?
- 6. 有什麼區別:。!和:r!?
- 7. ==和===有什麼區別?
- 8. Appender和〜有什麼區別?
- 9. $ @和$ *有什麼區別?
- 10. is和=有什麼區別?
- 11. #.00和#。##有什麼區別?
- 12. `==`和`is`有什麼區別?
- 13. '=='和'==='有什麼區別?
- 14. /和/#/有什麼區別?
- 15. | 0和~~有什麼區別?
- 16. `&`和`ref`有什麼區別?
- 17. ==和===有什麼區別?
- 18. ==和===有什麼區別?
- 19. `{}`和`[]`有什麼區別?
- 20. JavaScript和=== ===有什麼區別?
- 21. difftime和' - '有什麼區別?
- 22. =和==有什麼區別?
- 23. xtype和別名有什麼區別?
- 24. Mixpanel:識別()和people.identify()有什麼區別?
- 25. 有什麼區別
- 26. 有什麼區別
- 27. 有什麼區別?
- 28. 有什麼區別?
- 29. 有什麼區別?
- 30. 有什麼區別
這可能是對於動態鏈接的標誌,我猜。我無法在網上找到確切的信息。你能告訴我們「DLDFLAGS」的價值是什麼? –