Я пытаюсь создать проход 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 и всегда имею проблемы с make-файлами.