llvm InitializeNativeTarget() is undefined
llvm InitializeNativeTarget() is undefined
我看到的所有样本都显示llvm::InitializeNativeTarget()
第一行被调用。
我刚刚完成了 llvm 和 clang 的构建,并正在尝试运行我的第一个示例,但此函数似乎未定义。我不确定它是否实际上是未定义的,并且这些示例已经过时,或者我在上一步中是否做错了什么。
如果它应该存在,我在哪里可以找到这个函数的定义?还有什么我应该打电话
的吗?InitializeNativeTarget(); /* error, undefined */
llvm_start_multithreaded();
LLVMContext context;
string error;
llvm::OwningPtr<MemoryBuffer> buffer;
auto result = MemoryBuffer::getFile("test.bc", buffer);
auto m = ParseBitcodeFile(buffer.get(), context, &error);
auto ee = ExecutionEngine::create(m, true, &error);
使用上面的代码和通过 clang 编译的 test.bc 文件,我得到了一个空的执行引擎,所以我假设我没有正确初始化某些东西。
令人惊讶的是很难找到,但该函数似乎已重命名为:
LLVMInitializeNativeTarget()
简单地调用该函数解决了我的问题。
(我还需要调用 ExecutionEngine::create(m, false, &error) 而不是 true
)
这只是一个澄清。实际上,函数llvm::InitializeNativeTarget
可以在#include "llvm/Support/TargetSelect.h"
你调用的函数 llvm::LLVMInitializeNativeTarget 存在于
#include "llvm-c/Target.h"
后一个头文件已包含在 ExecutionEngine.h
中。因此你找到了它。这两个函数看起来相同(至少在 v3.9.1 之前),除了它们的返回值。但是,前者是LLVM示例中使用的一种,我建议您坚持使用它,尤其是在使用C++时。
相关文章:
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- Visual Studio Code "undefined reference to `WinMain@16'"
- 使用 MATLAB 编码器生成C++代码:编译错误"undefined reference to `rgb2gray_tbb_real64'"
- Why is UINT32_MAX + 1 = 0?
- 为什么即使在定义之后仍存在"Identifier is undefined error "?
- 错误说"camera is undefined",但我确实定义了它
- 如何解决"identifier 'gets'/'clrscr' is undefined"问题?
- IsWindows10OrGreater is Undefined
- C++ SQL 连接"get_driver_instance(); is undefined "错误
- llvm InitializeNativeTarget() is undefined
- 使用结构体的简单"identifier 'xxx' is undefined"
- wglGetProcAddress is undefined
- cudaOccupancyMaxActiveBlocksPerMultiprocessor is undefined
- 包括 fstream,但"ifstream not found"和"identifier is undefined"
- Is std::vector::begin() - 1 undefined?
- WC_NO_BEST_FIT_CHARS is undefined?
- C++ ~ 在客户端中调用函数会给出错误:"identifier ____ is undefined"
- 访问子类中的"protected"数据时"Identifier is undefined"错误
- Visual Express : SDL_Image is undefined
- 如何修复简单C++应用程序中的"identifier is undefined"错误?