我试图在函数传递中创建一个全局变量.代码是
gVar= new GlobalVariable(
/*Type=*/Int32Type,
/*isConstant=*/false,
/*Linkage=*/GlobalValue::CommonLinkage,
/*Initializer=*/0, // has initializer, specified below
/*Name=*/"gVar",
/*ThreadLocalMode*/GlobalVariable::InitialExecTLSModel);
Run Code Online (Sandbox Code Playgroud)
但是,我不断收到以下编译器错误:
错误:没有匹配函数来调用'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
这篇文章
您需要将模块传递给构造函数.LLVM代码库中有大量用于创建全局变量的示例.例如,在examples/ExceptionDemo/ExceptionDemo.cpp
:
new llvm::GlobalVariable(module,
stringConstant->getType(),
true,
llvm::GlobalValue::LinkerPrivateLinkage,
stringConstant,
"");
Run Code Online (Sandbox Code Playgroud)
顺便说一下 - 重要的说明:你不应该创建新的全局变量或做任何修改函数传递中的模块的东西.如果必须这样做,则需要模块传递.
归档时间: |
|
查看次数: |
2475 次 |
最近记录: |