是否可以在 Windows 上运行 cli?
我使用 Visual C++ 12.0 从源代码(构建指令)成功编译了 Cling ,但是当我尝试运行时出现以下运行时错误:
F:\Dev\open-source\Cling\src\build\Debug\bin>cling.exe
ERROR in cling::CIFactory::createCI():
resource directory F:\Dev\open-source\Cling\src\build\Debug\lib\clang\3.6.0 not found!
Assertion failed: !CurTokenLexer && "Cannot #include a file inside a macro!", file ..\..\..\..\..\tools\clang\lib\Lex\PPLexerChange.cpp, line 73
我用谷歌搜索了下一个链接:
- 在 Windows 上构建 Cling(C++ 解释器) ——我不想使用 Cygwin,而且这篇文章已有两年历史了。
顺便说一句,我有 Clang(Clang 版本 3.6.0(主干)),一切正常。
当我运行时cling -x c
,我仍然有同样的错误,但没有断言(-x
意味着将后续输入文件视为具有类型 <language>):
F:\Dev\open-source\Cling\src\build\Debug\bin>cling -x c
ERROR in cling::CIFactory::createCI():
resource directory F:\Dev\open-source\Cling\src\build\Debug\lib\clang\3.6.0 not found!
****************** CLING ******************
* Type C++ code and press enter to run it *
* Type .q to exit *
*******************************************
[cling]$ #include <stdio.h>
[cling]$ printf("%s", "test");
test
[cling]$
从这个链接:
在 Windows 上 cling 的限制来自于 clang 不支持完全的 windows mangling 方案,即它不是二进制兼容的。例如,不能调用使用 clang/gcc 编译器以外的编译器编译的函数。- 铿锵方面最近在这个方向上取得了很大进展。我们应该调查为什么坚持粉笔。即,在操作系统是 Windows 的情况下,CIFactory 中的所有设置是否正确。- 由于 C 在 C 模式下没有修改 Cling 必须在 Windows 上工作(即 Cling -xc)
... 这是一个我们打算很快解决的问题,非常欢迎补丁。