所以,我已经得到了那个需要编译的对象文件列表,其中有一个巨大的列表。如何从文件读取目标依赖关系?
我已经遇到了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