技術討論區 > 程式討論版
有多層子目錄架構的source code, 該如何compile, link成一個執行
(1/1)
阿貴:
大家好,一個小小問題請問大家,請多多幫忙…謝謝…
有多層子目錄架構的source code, 該如何compile, link成一個執行檔呢?
示意圖如下:
root directory
/ ∣ \
A_subdir: B_subdir: API_subdir:
A1.c B1.c api.c
A1.h B1.h api.h
A2.c B2.c
A2.h B2.h
root目錄下有A_subdir, B_subdir, share_subdir等三個子目錄,其下分別有 數個檔案,如上圖所示,其中A_subdir, B_subdir底下的.c檔皆須include
另一個子目錄share_subdir下的lib.h檔,請問以上這種常見的情形該如何
撰寫Makefile,使成產生一個執行檔呢?
ps:我試了libtool,試圖把A_subdir下的所有檔案compile, link成一個libA.la
B_subdir下的所有檔案compile, link成一個libB.la
share_subdir下的… libShare.la
可是發現在各別的子目錄底下,都可順利造出libA.la, libB.la libShare.la,
但最後要造出執行檔時,卻出現了底下類似的error message:
A_subdir/.libs/libA.al(A1.lo): In function `A1_function1':
root/A_subdir/A1.c:248: undefined reference to `api_function1'
請問:在這裡,使用libtool是標準作法嗎?libtool的方法與 ar + ranlib 的方法有何不同? 謝謝你耐心看完這個問題…
劍客:
autoscan
autoconf
automake
當然沒有那麼 auto ,有些還是要自己寫。其次是,如果程式不大,可以自己寫。看看別人的 Makefile ,注意 subdir 這個關鍵字。
導覽
[0] 文章列表
前往完整版本