.cppファイルのいくつかが目的コードを持っているので、makefileを使用して.cppファイルをobjective-c++としてコンパイルしようとしています。コンパイラオプションとして-xobjective-c++を追加し、プログラムエラー(および/の後に異なる番号を持つ多くの同様のエラー)で/327が迷い始めました。エラーは約200です。しかし、ファイルのエンコーディングをunicode-8から16に変更すると、エラーは23に減少します。現在.cppファイルにはobjective-c ++コードはありませんが、将来追加する予定です。complierオプションから-xobjective-c++を削除すると、すべてが正常に準拠します。.outが生成されます。誰かがなぜこれが起こっているのか、そして同じ感謝の解決策さえも事前に教えてくれるなら私は役に立ちます
私のmakefileの例
MACHINE= $(shell uname -s)
CFLAGS?=-w -framework CoreServices -framework ApplicationServices -framework CoreFoundation -framework CoreWLAN -framework Cocoa -framework Foundation
ifeq ($(MACHINE),Darwin)
CCLINK?= -lpthread
else
CCLINK?= -lpthread -lrt
endif
DEBUG?= -g -rdynamic -ggdb
CCOPT= $(CFLAGS) $(ARCH) $(PROF)
CC =g++ -x objective-c++
AR = ar rcs
#lib name
SLIB_NAME=myapplib
EXENAME = myapp.out
OBJDIR = build
OBJLIB := $(addprefix $(OBJDIR)/... all .o files)
SS_OBJ := $(addprefix $(OBJDIR)/,myapp.o )
vpath %.cpp path to my .cpp files
INC = include files
subsystem:
make all
$(OBJLIB) : |$(OBJDIR)
$(OBJDIR):
mkdir $(OBJDIR)
$(OBJDIR)/%.o:%.cpp
$(CC) -c $(INC) $(CCOPT) $(DEBUG) $(CCLINK) $< -o $@
all: $(OBJLIB) $(CLI_OBJ) $(SS_OBJ)
$(AR) lib$(SLIB_NAME).a $(OBJLIB)
$(CC) $(INC) $(CCOPT) $(SS_OBJ) $(DEBUG) $(CCLINK) -l$(SLIB_NAME) -L ./ -o $(OBJDIR)/$(EXENAME)
clean:
rm -rf $(OBJDIR)/*
dep:
$(CC) -MM *.cpp