Daemon引发的问题

目的想搭建一个不被kill的手机服务器,于是用theos创建了tool,一个daemon,但是往makefile里面添加文件引入的时候各种报错(cocoahttpserver框架,我在app引入这个框架都是对的).不知道是不是思路错了

有各种方法可以解决

能具体说下?,O(∩_∩)O谢谢

能具体说下?,O(∩_∩)O谢谢

what?

各种报错,到底报的什么错?
是不是思路错了?你这个思路指的是啥?
我觉得大神是这个意思,你啥都不说,神也很无奈啊。。。

2 个赞

嗯,这样说吧,我创建了一个daemon(是tool,参照http://www.iosre.com/t/run-a-daemon-as-root-on-ios/212做的),但是想给daemon添加服务器,于是找到了cocoahttpserver,然后往makefile里面的 xxx_FILES 添加httpserver的文件引用,结果不行,然后我就怀疑是不是不能这么做.想问下你们是怎么做的?

我估计makefile写错了,让你的makefile闪亮登场吧

ARCHS = armv7 arm64 armv7s

TARGET = iphone:latest:10.0

include theos/makefiles/common.mk

include/GCDAsyncSocket.m_CFLAGS = -fobjc-arc

include/GCDAsyncUdpSocket.m_CFLAGS = -fobjc-arc

include/HTTPAsyncFileResponse.m_CFLAGS = -fobjc-arc

include/HTTPAuthenticationRequest.m_CFLAGS = -fobjc-arc

include/HTTPConnection.m_CFLAGS = -fobjc-arc

include/HTTPDataResponse.m_CFLAGS = -fobjc-arc

include/HTTPDynamicFileResponse.m_CFLAGS = -fobjc-arc

include/HTTPFileResponse.m_CFLAGS = -fobjc-arc

include/HTTPMessage.m_CFLAGS = -fobjc-arc

include/HTTPRedirectResponse.m_CFLAGS = -fobjc-arc

include/HTTPServer.m_CFLAGS = -fobjc-arc

include/WebSocket.m_CFLAGS = -fobjc-arc

TOOL_NAME = iOSREd2

iOSREd2_FILES = main.mm include/GCDAsyncSocket.m include/GCDAsyncUdpSocket.m include/DDAbstractDatabaseLogger.m include/DDASLLogCapture.m include/DDASLLogger.m include/DDFileLogger.m include/DDLog.m include/DDTTYLogger.m include/DDContextFilterLogFormatter.m include/DDDispatchQueueLogFormatter.m include/DDMultiFormatter.m include/HTTPAsyncFileResponse.m include/HTTPDataResponse.m include/HTTPDynamicFileResponse.m include/HTTPFileResponse.m include/HTTPRedirectResponse.m include/MultipartFormDataParser.m include/MultipartMessageHeader.m include/MultipartMessageHeaderField.m include/DDData.m include/DDNumber.m include/DDRange.m include/WebSocket.m include/HTTPAuthenticationRequest.m include/HTTPConnection.m include/HTTPMessage.m include/HTTPServer.m include/PUTResponse.m include/DELETEResponse.m include/DAVResponse.m include/DAVConnection.m

include $(THEOS_MAKE_PATH)/tool.mk

make package 有报错的信息吗?有的话也放出来吧。
还有你这个arc只是这几个文件需要arc吗,感觉怪怪的

我这个文件引入在application里面是可以直接用的,但是放在tool里面就不行了,所以我最开始就怀疑是不是哪错了?
Making all for tool iOSREd2…
Compiling main.mm (armv7)…
Compiling include/GCDAsyncSocket.m (armv7)…
Compiling include/GCDAsyncUdpSocket.m (armv7)…
include/GCDAsyncUdpSocket.m:1939:8: error: block captures an autoreleasing
out-parameter, which may result in use-after-free bugs
[-Werror,-Wblock-capture-autoreleasing]
if (errPtr)
^
include/GCDAsyncUdpSocket.m:1923:77: note: declare the parameter __strong or
capture a __block __strong variable to keep values alive across
autorelease pools
…socket6:(BOOL)useIPv6 error:(NSError **)errPtr
^
1 error generated.

include/GCDAsyncUdpSocket.m:1939:8: error: block captures an autoreleasing
out-parameter, which may result in use-after-free bugs

include/GCDAsyncUdpSocket.m:1923:77: note: declare the parameter __strong or
capture a __block __strong variable to keep values alive across
autorelease pools