我正在尝试从LLVM源代码构建LLVM传递。 我按照http://llvm.org/docs/CMake.html#developing-llvm-passes-out-of-source上的说明进行操作。 Makefile包含以下内容:
cmake_minimum_required(VERSION 3.4.3)
project(SimpleProject)
find_package(LLVM REQUIRED CONFIG)
set (CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_FLAGS "-std=c++11 -Wall -fno-rtti -D_GLIBCXX_USE_CXX11_ABI=0")
include_directories(${LLVM_INCLUDE_DIRS})
add_definitions(${LLVM_DEFINITIONS})
add_subdirectory(testpass)
和子目录中的Makefile:
add_library(TestPass MODULE TestPass.cpp)
传递构建完美无缺,但是当我尝试使用
运行它时sudo opt load /path/to/testpass/TestPass.so TestPass < testprogram.bc > /dev/null
我收到以下错误消息:
Error opening /path/to/testpass/TestPass.so': /path/to/testpass/TestPass.so: undefined symbol: _ZNK4llvm10ModulePass17createPrinterPassERNS_11raw_ostreamERKSs
-load request ignored.
我是LLVM系统的新手,并且总是遇到makefile问题。