这可能是一个菜鸟问题,但有没有办法集成我的 LLVM 模块通道,以便在转换阶段默认调用?
现在我正在使用这种语法来加载我的通行证并注册它
~/llvm/llvm/build/Debug+Asserts/bin/clang -Xclang -load -Xclang ~/llvm/llvm/build/Debug+Asserts/lib/SOMEPASSLIB.so
Run Code Online (Sandbox Code Playgroud)
(问题是当我想用这个 pass 构建一些包时,编译器接受它,当我说将加载部分作为 CFLAGS env 变量传递时,但是一些 makefile 也使用 CFLAGS 进行链接,而链接器不知道它可以做什么使用此信息并导致构建失败:\)
我正在尝试使用 Android 中的 VpnService 在客户端设置一个简单的 tun 设备,在接收端我有一个正在运行的 C++ 服务器。
我在使用 VpnService 时遇到很多问题。这就是我所需要的,我需要从 Android 手机出站的所有数据包都路由到 tun 设备,并且在程序中我通过数据报通道将其路由到服务器。当我发送字符串时,它工作正常,但是当我通过此数据报通道发送其他数据时,我在 Wireshark 中看不到任何 UDP 数据包:\
另外,我是 Java 和数据报通道的新手。这是我的代码
//To establish the tunnel
builder.setSession("MyVPNService")
.addAddress("192.168.56.0", 32)
.addDnsServer("8.8.8.4")
.addRoute("0.0.0.0", 1);
mInterface=builder.establish();
Run Code Online (Sandbox Code Playgroud)
上面的配置到底是做什么的?tun设备不是应该有一个IP(根据我在linux上做的经验),那么什么是“”192.168.56.0”,32”。另外,当我尝试添加路线“0.0.0.0”时,0整个 Android 手机挂起并重新启动:\
while (true) {
int length;
// Read the outgoing packet from the input stream.
length=in.read(packet_bytes);
//int length = in.read(packet.array());
if (length > 0) {
// Write the outgoing packet to the tunnel.
//packet.limit(length);
//tunnel.send(packe,server);
tunnel.send(packet,server);
packet.put(packet_bytes,0,length);
tunnel.write(packet);
packet.clear();
}
Thread.sleep(200);
// Read the …Run Code Online (Sandbox Code Playgroud)