我需要在我的haxe项目中包含一些cpp文件,但我不知道如何告诉编译器该目录的位置。我不想使用绝对路径。 如何将目录包含在cpp文件中?
@:include("LinearMath/btScalar.h")
@:native("::btTypedObject")
@:structAccess
@:unreflective
编辑:好的,我现在明白了。
如果您想使用自己的.hxcpp_config.xml,请输入控制台:
haxelib运行hxcpp
将在用户目录中创建.hxcpp_config.xml(现在谈论win 7)。
<!-- Compiling on windows ... -->
<compiler id="MSVC" if="windows">
<!-- Example adding a build flag -->
<flag value = "-IC:/path/>
</compiler>
不同的方式...... http://www.wighawag.com/blog/2014/12/Hxcpp-extern
答案 0 :(得分:1)
Haxe不会让你的.hx文件与c ++代码混合,使用你需要的本机代码来使用C外部函数接口(CFFI)。 Here是文档的链接。我的想法是首先编写你的c ++代码,编写一个接口来公开代码中的方法,编译一个ndll,然后用cpp.Lib.load('dllNameWithoutTheDotdll','method_signature',numberOfArguments);
不幸的是,没有多少纯CFFI示例,但您可能需要查看OpenFL Native Extensions。它们基本上是代码模板,包含一组接口(包括CFFI),用于访问非haxe API
希望有所帮助,祝你好运!
答案 1 :(得分:0)
谢谢,但我知道CFFI以及如何编译ndlls。我认为@:include宏是相当新的。甚至还有一个@:cppFileCode和一个@:functionCode宏来直接从.hx文件中插入头代码和cpp代码。我测试了它,包括我可以从.hx文件中调用SetCursorPos Windows API函数。
这真是很酷的东西。现在我被卡住了,因为我不知道如何在构建过程中添加包含编译器标志,例如-ic:mycoolstuff /路径