所以,我已經得到了那個需要編譯的對象文件列表,其中有一個巨大的列表。如何從文件讀取目標依賴關係?
我已經遇到了Win32上的問題,因爲輸入字符串太大。我想通過傳遞@filename
到鏈接器,我可以讀取要從文件鏈接的目標文件,而不是將文件一對一地傳遞給鏈接器。
在我的makefile中:有沒有一種方法可以從文件中讀取依賴關係?類似的東西:
main.lib: @dependency_file_name
其中dependency_file_name
有創造的lib需要需要.obj
文件列表。
請記住,將文件的內容放入變量中也不起作用,因爲我在使用依賴項列表作爲變量時也遇到了輸入字符串太長的問題。
另外:方法應攜帶(Linux操作系統,Win32的)
編輯:目前,我的makefile文件的結構如下:
# slurp in some global settings
include /path/to/global/settings
all: prepare_target mylib cleanup_target
prepare_target:
# do preparing work (setup temp files etc)
cleanup_target:
# do cleanup work (delete temp files etc)
mylib: \
file1.obj \
file2.obj \
... \
file215.obj
# this file holds the dependencies for each .obj file
include file_with_obj_file_dependencies
實際上有215 C文件被編譯到這個庫中。正如我所說:將這個列表提供給鏈接器時,我需要通過文件來完成,因爲字符串對於命令行來說太大了。
我可以隨意更改makefile所需的任何東西:它是從VisualStudio vcxproj生成的,我擁有生成模板。
file_with_obj_dependencies
看起來就象這樣:
file1.obj: \
file1.c \
file1.h \
file2.obj: \
file2.c \
file2.h \
... \
file215.obj \
file215.c \
file215.h \
在makefile文件,這是否列表中存在的變量? – Beta
@beta:是的,我可以這樣做 – eckes
你能告訴我們你怎麼做?你必須有一些確定列表的東西。 – Beta