oc 转 c c++

在MacOS项目下使用clang命令clang -rewrite-objc main.m可以把main.m文件转换成C++文件,方便研究内部实现。但是如果是iOS项目的话执行上面clang命令就会报出下面错误:

shiyudeMacBook-Pro:LeaksTest shiyusun$ clang -rewrite-objc main.m
main.m:9:9: fatal error: 'UIKit/UIKit.h' file not found
#import <UIKit/UIKit.h>
        ^~~~~~~~~~~~~~~
1 error generated.


意思是找不到UIKit/UIKit.h文件。

解决办法

使用命令:

clang -x objective-c -rewrite-objc -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk main.m


如果不想每次都输入这么长的一串可以使用alias的方式:

进入终端,键入命令 vim

vim ~/.bash_profil


在vim界面输入进入编辑编辑状态并且键入:

alias rewriteoc='clang -x objective-c -rewrite-objc -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk'


键入完毕,点esc退出编辑状态,再键入:wq退出vim并保存,执行source ~/.bash_profile这句一定要执行,执行才会生效。

最后使用别名命令试试看:

rewriteoc main.m


注意:当使用__weak修饰变量进行进行clang编译时会报错:

cannot create __weak reference because the current deployment target does
      not support weak references


这时需要支持ARC、指定运行时系统版本,输入命令:

xcrun -sdk iphoneos clang -arch arm64 -rewrite-objc -fobjc-arc -fobjc-runtime=ios-8.0.0 main.m


 

### 华为路由器AR系列端口映射配置方法 对于华为AR系列路由器,当需要进行端口映射时,可以通过命令行接口(CLI)来实现更灵活的操作。由于Web界面存在一定的局限性,在处理复杂或多端口映射需求时推荐使用CLI方式进行配置。 #### 基本概念说明 端口映射是指将外部网络请求转发至内部特定服务器的过程。通过这种方式可以让位于私有网络中的设备能够被公网访问。在华为AR系列路由器中,主要涉及NAT(Network Address Translation)功能的应用。 #### CLI环境下的多端口映射实例 针对连续范围内的TCP端口号进行映射操作如下所示: ```shell [Huawei-GigabitEthernet0/0/1] nat static protocol tcp global current-interface 11000 14000 inside 192.168.1.1 11000 14000 ``` 上述指令实现了对外部接口上的`current-interface` IP地址从11000到14000之间的所有入站连接重定向给内网主机`192.168.1.1`相同区间段的监听服务[^3]。 #### 单一端口映射示例 如果只需要开放单一端口,则可采用更为简洁的方式完成设置: ```shell [Huawei-GigabitEthernet0/0/1] nat server protocol tcp global current-interface 1433 inside 192.168.1.200 1433 ``` 这条语句的作用是把来自外网对当前接口IP地址发起的目标端口为1433的数据包转交给局域网内的计算机(`192.168.1.200`)同样编号的服务程序去响应[^5]。 #### 注意事项 - 执行任何更改之前建议先备份现有配置文件以防意外情况发生。 - 使用`dir`命令可以浏览存储介质上的文件列表;而要清除先前保存过的启动参数则需调用`reset saved-configuration`;最后执行`reboot`使新的设定生效[^4].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值