【发布时间】:2015-07-09 13:32:19
【问题描述】:
我开始收到这些警告(其中有几页)。问题是我无法打开subdir-objects,因为这些文件是从不同的上下文(针对不同的二进制文件)编译的,因此每个.c/.cpp 文件都会生成多个.o 文件。
src/scheduler.meta/Makefile.am:15: warning: source file 'base/MiscHelpers.cpp' is in a subdirectory,
src/scheduler.meta/Makefile.am:15: but option 'subdir-objects' is disabled
如何消除这些警告?
【问题讨论】:
-
不清楚为什么您不能让目标文件与其源文件存放在相同的目录中?如果每个源文件生成多个目标文件,您目前如何区分或隔离从同一源编译的目标文件?
-
@MikeKinghan 我不明白你在问什么。是的,一个源文件是从多个上下文编译的,产生多个目标文件。如果没有
subdir-objects,文件将被放入编译它们的目录,而不是源文件的目录。这就是区分不同上下文的方式。 -
@MikeKinghan 如果我打开
subdir-objects,目标文件将被覆盖,导致随后的make调用出现编译错误。我必须在每次编译之前致电make clean。 -
automake 不会通过为上下文添加前缀来自动创建唯一的文件名吗?例如
foo-foo.o与libfoo-foo.o
标签: c++ c autotools autoconf automake