gpt4 book ai didi

clang - Cling API 可用吗?

转载 作者:行者123 更新时间:2023-12-05 01:03:59 37 4
gpt4 key购买 nike

使用方法 Cling在我的应用程序中通过 API 来解释 C++ 代码?

我希望它提供类似终端的交互方式,而无需编译/运行可执行文件。假设我有 hello world 程序:

void main() {
cout << "Hello world!" << endl;
}

我希望有 API 来执行 char* = (program code)并获得 char *output = "Hello world!" .谢谢。

附注。类似于 ch interpeter example :
/* File: embedch.c */
#include <stdio.h>
#include <embedch.h>
char *code = "\
int func(double x, int *a) { \
printf(\"x = %f\\n\", x); \
printf(\"a[1] in func=%d\\n\", a[1]);\
a[1] = 20; \
return 30; \
}";
int main () {
ChInterp_t interp;
double x = 10;
int a[] = {1, 2, 3, 4, 5}, retval;
Ch_Initialize(&interp, NULL);
Ch_AppendRunScript(interp,code);
Ch_CallFuncByName(interp, "func", &retval, x, a);
printf("a[1] in main=%d\n", a[1]);
printf("retval = %d\n", retval);
Ch_End(interp);
}
}

最佳答案

终于有了更好的答案:示例代码!见 https://github.com/root-project/cling/blob/master/tools/demo/cling-demo.cpp

你的问题的答案是:不。 cling 获取代码并返回 C++ 值或对象,跨编译和解释的代码。这不是一种“串入/串出”的东西。有 perl ;-) 这是代码输入,值输出的样子:

// We could use a header, too...
interp.declare("int aGlobal;\n");

cling::Value res; // Will hold the result of the expression evaluation.
interp.process("aGlobal;", &res);
std::cout << "aGlobal is " << res.getAs<long long>() << '\n';

抱歉回复晚了!

关于clang - Cling API 可用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24077236/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com