gpt4 book ai didi

c++ - 在llvm中创建全局变量时出错

转载 作者:太空狗 更新时间:2023-10-29 20:26:23 37 4
gpt4 key购买 nike

我正在尝试在函数传递中创建一个全局变量。代码是

gVar= new GlobalVariable(
/*Type=*/Int32Type,
/*isConstant=*/false,
/*Linkage=*/GlobalValue::CommonLinkage,
/*Initializer=*/0, // has initializer, specified below
/*Name=*/"gVar",
/*ThreadLocalMode*/GlobalVariable::InitialExecTLSModel);

但是,我不断收到以下编译器错误:

错误:没有匹配函数调用 'llvm::GlobalVariable::GlobalVariable(const llvm::Type*&, bool, llvm::GlobalValue::LinkageTypes, int, const char [4], llvm::GlobalVariable::ThreadLocalMode)'

你能告诉我在 llvm 中声明全局变量的正确方法吗?非常感谢!

另外,我引用了头文件:

http://llvm.org/docs/doxygen/html/GlobalVariable_8h_source.html

和这篇文章

How can I declare a global variable in LLVM?

最佳答案

您需要将一个模块传递给构造函数。 LLVM 代码库中有很多用于创建全局变量的示例。例如,在 examples/ExceptionDemo/ExceptionDemo.cpp 中:

new llvm::GlobalVariable(module,
stringConstant->getType(),
true,
llvm::GlobalValue::LinkerPrivateLinkage,
stringConstant,
"");

顺便说一句 - 重要提示:您不应该创建新的全局变量或做任何其他修改函数传递中的模块的事情。如果您必须这样做,则需要模块通行证。

关于c++ - 在llvm中创建全局变量时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19866349/

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