我正在ST ARM-Cortex-M3上開發裸機C應用程序。我還開發了可在所有這些應用程序中使用的庫。將幾個相關庫鏈接到我的「裸機」C應用程序中
我曾經使用Keil ARM-MDK,但想要移到GNU-GCC。於是我下載了最新版本的GCC並開始重新編譯代碼。
儘管類似的問題已經得到解答,但它並沒有解決我的問題,因此我發佈了我的問題。
我遇到以下問題: Lib_Flash有一個函數Read_Flash()。因爲它使用Read_Flash(),Lib_Flash中的Lib_AppCfg鏈接。 我的應用程序(App)鏈接在Lib_Flash和Lib_AppCfg中。 App還使用Read_Flash()進行一些特定的FLASH檢查。 在Keil MDK-ARM中它工作正常。 使用GCC時,當使用Lib_AppCfg函數構建時,會出現錯誤,指出Read_Flash()是「未定義的引用」。 我不確定問題出在哪裏。它是鏈接的Lib_Appcfg是內置的還是當我鏈接應用程序的問題?
請指教。如果您需要更多信息,請告訴我。
這是一個鏈接錯誤。你能告訴我們你的編譯命令嗎? – Linuxios
您是否嘗試重複'Lib_Flash'庫,如'gcc app.c -o app -lFlash -lAppCfg -lFlash'? –
@AlexandreC:GNU鏈接器可以使用分組選項更智能地實現這一點 - 請參閱我的答案。這說你「評論」是一個回答,而不是對這個問題的評論,爲什麼不把它作爲一個? – Clifford