[英]effect of using macros for function declaration and definition on symbol export within a static library
有誰知道在構建靜態庫時大量使用c-macros定義和聲明函數是否會影響鏈接程序導出這些符號的能力?
我一直遇到這個問題,當我切換到常規函數聲明和定義(不使用宏)時,幾乎所有符號查找失敗都幾乎消失了。
這是在使用Xcode 5並針對iOS(arm + i386)的mac平台上發生的。
我打開/關閉哪個構建設置都沒有關系。 看起來真正有所不同的是宏的使用和符號導出文件的使用。
我問,因為我現在遇到了一大堆代碼,這些代碼使用幾個級別的宏進行函數定義和聲明,並且除非絕對必要,否則我不想更改它。
該代碼確實很復雜(但引人注目:)),最初是使用GNU make&siblings構建的。 因此,將其切換到基於XCode的版本並不是一件容易的事。 它與標頭包括一起玩把戲。
關於這一點,我將不勝感激:靜態庫的宏和符號導出。
謝謝!
宏會在編譯器啟動之前展開,並且鏈接器直到所有目標文件完成后才會顯示。 因此,要么您的宏沒有生成您認為的代碼,要么您發現了第一個實現時間轉換的宏。 編輯:或者我完全不了解要點,可以。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.