Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cmake 从LLVM源代码未定义的符号中写入LLVM传递_Cmake_Llvm - Fatal编程技术网

Cmake 从LLVM源代码未定义的符号中写入LLVM传递

Cmake 从LLVM源代码未定义的符号中写入LLVM传递,cmake,llvm,Cmake,Llvm,我正在尝试用LLVM源代码构建LLVM传递。 我已经按照上面的说明做了。 生成文件包含以下内容: 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"

我正在尝试用LLVM源代码构建LLVM传递。 我已经按照上面的说明做了。 生成文件包含以下内容:

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)
pass构建完美无瑕,但当我尝试使用

sudo opt load /path/to/testpass/TestPass.so TestPass < testprogram.bc > /dev/null

我是LLVM系统的新手,在使用makefiles时总是遇到问题。

如果您在运行时得到未定义的符号,那么您就忘记了链接某些内容。很可能类似于
target\u link\u库(TestPass${LLVM\u libraries})
的东西也没有做到这一点。这可能只是我忽略的一个愚蠢的错误,但我找不到任何有助于我的东西。基本上,我只有一个emtpy LLVM Pass,它什么都不做,而且生成文件和它都不起作用。你不需要
add\u LLVM\u loadable\u module
而不是根据该手册
add\u library
吗?根据该手册,只有当你以后想将Pass添加到LLVM源代码树时,才需要它
Error opening /path/to/testpass/TestPass.so': /path/to/testpass/TestPass.so: undefined symbol: _ZNK4llvm10ModulePass17createPrinterPassERNS_11raw_ostreamERKSs
-load request ignored.