在编译我的项目时,从Xcode 4.5切换到Xcode 5时,我突然收到此错误消息。
clang: cannot use 'precompiled-header' output with multiple -arch options
我的GNU Makefile
包含以下片段:
define build
CC-$(platform)-$(2)?=$(CC-$(platform))
$(bindir)/$(platformdir)-$(2)$($(3)-dirsuffix)/$(1)_%: $(srcdir)/$(1)/%.c $(common)
mkdir -p $$(@D)
$$(CC-$(platform)-$(2)) $(cflags) $($(3)-cflags) $(CFLAGS) -o $$@ $$^ $($(3)-ldflags) $(LDFLAGS)
endef
$(foreach library,$(libraries),$(foreach arch,$(archs),$(foreach configuration,$(configurations),$(eval $(call build,$(library),$(arch),$(configuration))))))
并且$(CC)
评估为cc
符号链接到clang。
答案 0 :(得分:1)
solution是从文件列表中过滤出头文件
使用GNU Make
的 $(filter-out pattern...,text)
函数编译,以过滤掉与%.h
匹配的所有内容:
define build
CC-$(platform)-$(2)?=$(CC-$(platform))
$(bindir)/$(platformdir)-$(2)$($(3)-dirsuffix)/$(1)_%: $(srcdir)/$(1)/%.c $(common)
mkdir -p $$(@D)
$$(CC-$(platform)-$(2)) $(cflags) $($(3)-cflags) $(CFLAGS) -o $$@ $$(filter-out %.h,$$^) $($(3)-ldflags) $(LDFLAGS)
endef
然后clang
不再混淆了。