首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用makefile将C++文件编译为objective-c++

使用makefile将C++文件编译为objective-c++
EN

Stack Overflow用户
提问于 2012-06-27 19:35:50
回答 1查看 920关注 0票数 2

我正在尝试使用makefile将.cpp文件编译为objective-c++,因为我的cpp文件中很少有目标代码。我添加了-x objective-c++作为编译器选项,并开始在程序错误中得到流浪的/327 (以及许多类似的错误,在/之后有不同的数字)。误差在200左右。但是,当我将文件的编码从unicode-8更改为16时,错误减少到23。目前在.cpp文件中没有objective-c++代码,但计划在将来添加。当我从编译器选项中删除-x objective-c++时,一切都正常。并生成.out。如果有人能提前告诉我为什么会发生这种情况,甚至是同样感谢的解决方案,我会很有帮助的。

我的makefile示例

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-27 23:12:45

在带引号的字符串之外有一个零散的×(乘号)。所有C/C++都必须是ASCII,字符串中的除外。

注意:转换为UTF-8的ASCII是ASCII。如果是utf-16,那么不带引号的字符串必须是ASCII等效项,假设编译器支持utf-16。此外,to文件格式可能会产生不同的代码,所产生的字符串也不同。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11225278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档