我真的很感兴趣学习ocaml,它很快(他们说它可以编译成本机代码)并且它的功能.所以我试着编写像启用mysql事件调度程序一样简单的代码.
#load "unix.cma";;
#directory "+mysql";;
#load "mysql.cma";;
let db = Mysql.quick_connect
~user:"username"
~password:"userpassword"
~database:"databasename"();;
let sql =
"SET GLOBAL EVENT_SCHEDULER=1;"
in
(Mysql.exec db sql);;
Run Code Online (Sandbox Code Playgroud)
它在ocaml解释器上工作正常,但当我尝试将其编译为native(我使用的是ubuntu karmic)时,这些命令都没有工作
ocamlopt -o mysqleventon mysqleventon.ml unix.cmxa mysql.cmxa
ocamlopt -o mysqleventon mysqleventon.ml unix.cma mysql.cma
Run Code Online (Sandbox Code Playgroud)
我也试过了
ocamlc -c mysqleventon.ml unix.cma mysql.cma
Run Code Online (Sandbox Code Playgroud)
所有这些都产生了同样的信息
File "mysqleventon.ml", line 1, characters 0-1:
Error: Syntax error
Run Code Online (Sandbox Code Playgroud)
然后我试图删除"#load",所以代码就是这样
let db = Mysql.quick_connect
~user:"username"
~password:"userpassword"
~database:"databasename"();;
let sql =
"SET GLOBAL EVENT_SCHEDULER=1;"
in
(Mysql.exec db sql);;
Run Code Online (Sandbox Code Playgroud)
ocamlopt结果消息
File "mysqleventon.ml", line 1, characters 9-28:
Error: …Run Code Online (Sandbox Code Playgroud)
我想知道如何为我的Native(C,C++)代码生成序列图.我用vim编辑器编写了我的C代码.
谢谢,
森
我意识到之前已经问过这个问题 - 但是没有一个答案适用于我的具体案例:
我有一个包含本机C++ EXE项目的解决方案,该项目依赖于40多个本机C++ DLL项目(在同一解决方案中).
EXE项目具有通常的调试,发布(和配置文件)配置,但由于它们使用相同的源代码库来构建三个不同的应用程序(例如A1,A2和A3).此外,它以x32和x64为目标,因此总共有3 x 3 x 2 = 18个项目配置.
DLL项目由所有三个目标应用程序共享,因此只有3个(调试,发布,配置文件)时间2(x32,x64)= 6个配置.
由于EXE项目依赖于DLL,因此无论何时修改,它都需要将DLL项目的相关输出复制到其目标文件夹(或其子文件夹).
你会如何处理DLL的更新?
每个DLL项目中的构建后操作都不起作用(因为)它必须将DLL复制到A1,A2和A3的相关输出文件夹.输出文件夹中的任何更改都会导致必须修改50个DLL项目中的每个项目中的构建后操作.
我目前将DLL本身作为项目项添加到EXE项目中,并配置了自定义构建工具以将其复制到输出文件夹.但这需要我添加每个DLL 6次,所以我最终得到6 x 50 = 300个DLL!
我真正需要的是类似于复制本地选项,不幸的是只能使用程序集.您是否建议简化此构建设置?
我下载了SDL 1.3并在我的Android 2.2设备上与OpenGL ES一起测试了它.它工作正常,但我没有得到printf呼叫的输出.我尝试了android开发者页面中提到的下面的命令,但是DDMS在Eclipse中都没有adb logcat报告程序使用的字符串printf.我确保过滤stdout标签.
$ adb shell stop
$ adb shell setprop log.redirect-stdio true
$ adb shell start
Run Code Online (Sandbox Code Playgroud)
我错过了什么或做错了什么?
首先,我相信,这不是一个重复的问题.我不想用NDK编写本机应用程序,我只想将Android设备用作廉价的Linux 服务器.在此上下文中,服务器表示没有UI的程序.此外,服务器是用裸C++编写的,但根本不使用任何库,所以这就是为什么这个问题与其他问题不同.
故事
我们为Linux编写了一个小型服务器,它有一个webserver接口,所以你用一个vanilla浏览器连接它,你可以玩它.我们已将其编译为Linux/x86,Linux/ARM(GuruPlug),Linux/PPC(某种NAS)和Mac OS X Darwin平台.
Linux/ARM版本在我的PalmPré智能手机上运行良好.我刚刚将可执行文件复制到我的手机上(在webOS场景中,没有像越狱这样的东西,有一个官方的"开发者模式",如果你通过输入一个密钥组合激活,你可以用ssh登录你的手机或使用本地ssh应用程序).因此,即使是最小的Linux设备,我们的小型服务器程序(守护程序,可能会说)也在运行.(将千兆级桌面计算机的浏览器连接到智能手机服务器时,这很有趣.)
服务器程序设计为即使在最小的Linux上运行(正如我所说,它运行在NAS,路由器,智能手机上),它只需要STDLIB和PTHREADS.
这个问题
在Android设备上运行简单的服务器程序的直接方法是什么?
所以,我想用Andrid设备(手机,平板电脑)做同样的事情,就像我在我的webOS设备上做的那样:复制服务器程序并运行它.计算机就是这样,运行程序,不是吗?;)
我已经使用NGEN来创建我的应用程序使用的几个程序集的本机映像.但是,运行应用程序时不会加载这些图像,我不知道为什么.
这是来自fuslogvw的典型日志:
*** Assembly Binder Log Entry (2/05/2012 @ 13:29:04) ***
The operation failed.
Bind result: hr = 0x80070002. The system cannot find the file specified.
Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
Running under executable C:\MyDir\MyApp.exe
--- A detailed error log follows.
=== Pre-bind state information ===
LOG: User = ***\***
LOG: DisplayName = MyAssembly, Version=1000.0.0.0, Culture=neutral, PublicKeyToken=null (Fully-specified)
LOG: Appbase = file:///C:/MyDir/
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = …Run Code Online (Sandbox Code Playgroud) 我有WPF窗口,它在WPF应用程序中托管时运行正常,但是当我从我的本机C++应用程序中加载它时,渲染和UI线程块需要很长时间才能完成.
我窗口上的主要攻击者是一系列项目控件,用于显示9到12个图标网格,这些图标代表我系统中组件的状态.
初始渲染的整个项目控制最多需要14秒.(在WPF应用程序中运行时几乎是即时的)
每行都有一个文本标题,单击该标题时会显示每个状态图标的小数据摘要(max,min,mean,std dev).单击此标题最多可能需要4秒才能呈现摘要,但在我的WPF应用程序中是即时的.
是否有任何已知的技巧使WPF在本机应用程序中表现良好?
[编辑]
我刚刚尝试使用以下代码从大型.NET窗体应用程序启动它:
public bool? ShowWpfDialog(System.Windows.Window window, Form owner)
{
var helper = new System.Windows.Interop.WindowInteropHelper(window)
{Owner = (owner == null) ? IntPtr.Zero : owner.Handle};
return window.ShowDialog();
}
Run Code Online (Sandbox Code Playgroud)
我遇到与从本机应用程序运行时相同的性能问题.(.net应用程序也运行本机代码.)
[编辑]
当我不使用WindowInteropHelper时,代码执行正常:
public bool? ShowWpfDialog(System.Windows.Window window, Form owner)
{
//var helper = new System.Windows.Interop.WindowInteropHelper(window)
// {Owner = (owner == null) ? IntPtr.Zero : owner.Handle};
return window.ShowDialog();
}
Run Code Online (Sandbox Code Playgroud)
什么是WindowInteropHelper会导致性能问题?
[编辑]
当我使用WindowInteropHelper向所有者加载资源时,是否存在资源解决方式的问题?
我正在寻找4天,但无法得到它.我构建了所有库并将其集成到我的自定义项目中,但我不知道应该采取哪些步骤来使其工作.我在代码示例\解释中找到的唯一一件事就是tech.appear.in/2015/05/25/Getting-started-with-WebRTC-on-iOS,但它对我来说很糟糕且不清楚,AppRTCDemo源代码也是如此.我读过关于浏览器的WebRTC但仍无法在iOS上重现它.任何人都可以解释或提供关于如何使用WebRTC API完全构建iOS本机应用程序的解释链接,例如p2p ios chat?
除了我不理解demo中提供的代码逻辑这一事实,我无法理解:
1)我的iOS应用程序的ICE服务器是什么?我应该好好照顾吗?它是服务器端的东西吗?我应该自己编码和运行它,还是我可以使用现有的Parse背景?
2)iOS应用程序中的信令机制是什么?它只是客户端,还是必须在服务器端实现?
3)也许有人可以解释一步一步的指南,也许有一些代码,如何使用WebRTC实现简单的iOS p2p聊天?例如:
"你必须:
使用this = source =和本教程= tutorial =在解析核心上创建ICE/STUN/TURN服务器.
使用创建的ICEServer创建RTCPeerConnection:
RTCPeerConnectionFactory *pcFactory = [[RTCPeerConnectionFactory alloc] init];
RTCPeerConnection *peerConnection = [pcFactory peerConnectionWithICEServers:kICEServerURL constraints:nil delegate:self];
使用创建DataChannel ...
使用...解释发送信号= link =
设置本地和远程描述 ...
...使用发送数据...
......"或类似的东西.
我很抱歉这个问题,但是我想失去理智.谢谢!
iOS SDK中UIActionSheet的Android等价是什么?我正在研究React-Native项目,并且需要尽可能保持本机控件的使用.我没有遇到使用相应的plartform'动作表'的npm包或其他包.他们似乎都使用iOS中的原生动作表,以及Android的iOS动作表的javascript模拟(这使得它在Android上非原生).如果我能知道android显示哪个iOS显示动作表,那么我可以使用适用于Android的RN Android组件和iOS的动作表.我希望这是一个明确的问题.
我看过本指南,了解如何为每个ABI构建拆分的APK。
但是我的应用程序嵌入了许多本机可执行文件作为资产。是否可以根据ABI过滤它们?
相关部分build.gradle:
android {
...
splits {
abi {
enable true
}
}
externalNativeBuild {
cmake {
path "CMakeLists.txt"
// builds assets and places them in src/main/assets
}
}
sourceSets {
main {
assets.srcDirs = ['src/main/assets']
}
}
}
Run Code Online (Sandbox Code Playgroud)
使用CMake构建本机可执行文件后,示例应用程序树:
src
+ main
+ assets
+ x86
| + native-x86.bin
+ x86_64
| + native-x86_64.bin
+ armeabi-v7a
| + native-arm.bin
+ arm64-v8a
+ native-aarch64.bin
Run Code Online (Sandbox Code Playgroud)
每个ABI目录都包含本机二进制文件
我希望每个拆分的APK仅包含特定于ABI的资产目录,并过滤其他目录。例如,对于arm64 APK:
assets
+ arm64-v8a
+ native-aarch64.bin
Run Code Online (Sandbox Code Playgroud) native ×10
android ×4
ios ×2
.net ×1
android-ndk ×1
assets ×1
c ×1
c++ ×1
compilation ×1
fuslogvw ×1
image ×1
iphone ×1
linux ×1
ngen ×1
objective-c ×1
ocaml ×1
performance ×1
pthreads ×1
react-native ×1
stdout ×1
webrtc ×1
wpf ×1