我不知道是否可以從代碼中指定一個鏈接器選項?編譯器允許#pragma
指令抑制警告;我們可以擴展多遠?是否可以從代碼指定鏈接器選項?
回答
(我正在考慮連接隱含在Linux系統上,並使用GCC編譯器,你很可能的答案適應你的OS)
不,這是不可能的代碼,以指定的鏈接選項,並通知鏈接器正在處理對象文件(而不是其中的單個函數)。
但是,您的build procedure可能會從源代碼中提取鏈接器選項。舉例來說,如果你有很多單一來源程序的目錄(即,aa.cc
C++源文件編譯成aa.bin
可執行文件,bb.cc
編成bb.bin
等),你可能有一個Makefile
提
%.bin: %.cc
$(CXX) $(CXXFLAGS) $(shell awk /Link:/{print $2} $<) $^ -o [email protected]
和aa.cc
像註釋:
/* the link option is
Link: -lfoo
*/
順便說一句,你也可能有一些GCC plugin這registers並處理您的具體#pragma
;如果您使用clang
而不是gcc
,您也可以使用一些Clang plugin;新的編譯指示可以在鏈接時使用的普通Sqlite數據庫中添加一些內容。
所以你可以做複雜的事情,但我只是建議有你自己的make
rules來處理你的鏈接。
謝謝你的幫助,XY問題是有道理的。我正在考慮是否可以實現一個基於宏生成不同程序入口點的測試框架,因爲這是不可能的,我會用腳本來實現它:) –
不要忘記可以使用元編程技術;您可以使用一些生成C或C++代碼的腳本,或測試用例或編譯或鏈接命令。 –
- 1. 是否可以鏈接C代碼與llvm位代碼?
- 2. 爲gcc鏈接器指定可選庫
- 3. 鏈接器是否引用主代碼
- 4. 鏈接是否可以鏈接到csrf?
- 5. rails,link_to:是否可以在:confirm選項中包含鏈接?
- 6. AngularJS - 是否有可能從代碼編譯和鏈接模板?
- 7. 是否可以在ruby中爲to_yaml指定格式化選項?
- 8. 是否可以從gcc中的C源代碼內部鏈接到數學庫?
- 9. 你能告訴機器代碼指令是否可重定位?
- 10. 是否可以將Internet Explorers BasicImage篩選器與Gradient篩選器鏈接起來?
- 11. 是否可以將cmake項目鏈接到子項目?
- 12. MasterPage是否可以從控制器中指定?
- 13. 在Java代碼中設置選定的選項卡指示器
- 14. 是否可以從量角器測試中調用C#代碼?
- 15. Visual Studio項目鏈接器:是否可以自動填充目標項目?
- 16. 是否可以鏈接指令作用域(例如obj.prop)?
- 17. 是否可以在ng-click中鏈接指令?
- 18. 是否可以生成指向Simulink模型的超鏈接?
- 19. 如何在目標鏈接器選項之前設置code :: blocks以鏈接項目鏈接器選項?
- 20. 是否可以在Orika中指定List索引作爲可選項?
- 21. 是否可以在特定的js中直接鏈接?
- 22. 是否可以執行差異鏈接?
- 23. 是否可以更改鏈接的href?
- 24. 是否可以「鏈接」Laravel RESTful路由?
- 25. QTcpServer :: incomingConnection(qintptr socketDescriptor)是否可以連接指定的套接字?
- 26. 優化JQuery代碼 - 在不同容器中鏈接選項卡
- 27. 對於非GNU鏈接器,是否有與GNU鏈接器「--just-symbols」選項等價的選項?
- 28. 是否可以重寫代碼以減少選擇的數量?
- 29. 根據URL,是否可以指定點擊鏈接的不同行爲?
- 30. 是否可以看到由Fabric Composer生成的鏈式代碼?
簡潔地說,「不」。 –
**你爲什麼要問**請**編輯你的問題**來激勵它,並給出更多的細節。聽起來像[XY問題](http://xyproblem.info/) –