请教大家一个问题,我有多个m文件 ,有的是第三方的,第三方的不能使用arc,之前使用iOSOpendev的时候,只需要在compile Source那一栏为第三方的文件加上编译选项-fno-objc-arc即可,使用theos的话,makefile应该怎么去写呢?
非常遗憾,Theos目前不支持这个特性。我想解决办法只有绕一下,把需要用到arc的部分和不需要用到arc的部分编译成2个不同的文件,然后协调工作,但确实很不方便
恩,thx~我把全部都弄成arc了
你好 我想请问怎么在theos使用ARC代码呢
只能全部ARC
要么全部ARC,要么全部MRC。我的Makefile没配置啥的话是MRC的,换成ARC的话需要加上:
ADDITIONAL_OBJCFLAGS = -fobjc-arc
参考:https://stackoverflow.com/a/15757242/1749293
至于特定某个文件单独设置的,还不知道。
附个Makefile参考:
GO_EASY_ON_ME = 1
THEOS_DEVICE_IP = localhost
THEOS_DEVICE_PORT = 2222
ARCHS = armv7 arm64
TARGET = iphone:latest:8.0
ADDITIONAL_OBJCFLAGS = -fobjc-arc
include $(THEOS)/makefiles/common.mk
THEOS_INCLUDE_PATH := src/
TWEAK_NAME = TweakName
TweakName_LDFLAGS += src/libffi.a
TweakName_FRAMEWORKS = UIKit
TweakName_FILES = $(wildcard ./*.m) $(wildcard src/*.m) TweakName.xm
include $(THEOS_MAKE_PATH)/tweak.mk
after-install::
install.exec "killall -9 backboardd; killall -9 SpringBoard"
现在有单文件设置的。另外这是一年前的坟。。。。
http://iphonedevwiki.net/index.php/Using_ARC_in_tweaks
听了大神的话,查了查,确实是有对单文件ARC设置的了。
但有个疑问,Tweak启用ARC后(Makefile加上TweakName_CFLAGS = -fobjc-arc
),却想为某个单独文件加上MRC的Flagfno-objc-arc
就不行了。
iPhoneDevWiki上建议"separate the projects. "。除了这个建议,而且又是仅是一两个.m文件需要,有没有更好快捷的解决方法呢?哪位大神知道的话,烦告诉我一声,在这里先谢谢了。
不太清楚Theos内部是怎么传CFLAGS的。应该是调用clang的时候先把全局添加了再添加单文件的选项然后cl的option parsing有某种override的机制
所以要么就抛弃全局CFLAGS单个设置