构建文件夹中缺少 LLVM3.8 Makefile.config、Makefile.common 和 Makefile.rule
LLVM3.8 Makefile.config, Makefile.common and Makefile.rule missing in build folder
所以我正在学习 llvm,我决定从我从 LLVM site 下载的 tars 构建 3.8。
一切正常,我设法在单独的构建文件夹中构建源代码。
(After downloading all the sources)
$cd llvm3.8/build
$cmake -G "Unix Makefiles" ../llvm
$make -j 4
$make install
所以我的目录看起来有点像这样:
llvm3.8/
llvm3.8/build
llvm3.8/llvm
在学习如何编写 LLVM pass 时,我注意到我的构建文件夹缺少这些文件:
- Makefile.config
- Makefile.common
- Makefile.rule
我在为实现的传递编写的 Makefile 中使用的。
据我所知,源文件中有这些文件:
$cd llvm3.8/llvm
$ls:
CMakeLists.txt README.txt llvm.spec.in
CODE_OWNERS.TXT autoconf projects
CREDITS.TXT bindings resources
LICENSE.TXT cmake test
LLVMBuild.txt configure tools
Makefile docs unittests
Makefile.common examples utils
Makefile.config.in include
Makefile.rules lib
而我的构建文件夹没有。
$ cd llvm3.8/build
$ ls
CMakeCache.txt cmake libexec
CMakeFiles cmake_install.cmake projects
CPackConfig.cmake compile_commands.json share
CPackSourceConfig.cmake docs test
DummyConfigureOutput examples tools
LLVMBuild.cmake include unittests
Makefile install_manifest.txt utils
bin lib
我的构建文件夹是否包含它应该包含的内容?
也许通行证必须写在来源llvm3.8/llvm
?
感谢您的帮助。
你应该在 llvm/lib/Transforms/YourPassName
中写下你的通行证
在构建中创建一个目录:
mkdir -p llvm3.8/build/lib/Transforms/YourPassName
我会推荐你使用cmake。由于 autoconf 将在 llvm3.9 中被弃用。对于它:
在 llvm/lib/Transforms/CMakeLists.txt 中添加条目
add_subdirectory(YourPassName)
放入条目后,像其他llvm passes一样在llvm/lib/Transforms/YourPassName中创建CMakeLists.Txt。
现在使用
cmake ../llvm3.8
从 pass 目录中:
make
此外,如果您已经安装了 llvm 并想独立安装,请使用此答案中给出的方法:
所以我正在学习 llvm,我决定从我从 LLVM site 下载的 tars 构建 3.8。
一切正常,我设法在单独的构建文件夹中构建源代码。
(After downloading all the sources)
$cd llvm3.8/build
$cmake -G "Unix Makefiles" ../llvm
$make -j 4
$make install
所以我的目录看起来有点像这样:
llvm3.8/
llvm3.8/build
llvm3.8/llvm
在学习如何编写 LLVM pass 时,我注意到我的构建文件夹缺少这些文件:
- Makefile.config
- Makefile.common
- Makefile.rule
我在为实现的传递编写的 Makefile 中使用的。
据我所知,源文件中有这些文件:
$cd llvm3.8/llvm
$ls:
CMakeLists.txt README.txt llvm.spec.in
CODE_OWNERS.TXT autoconf projects
CREDITS.TXT bindings resources
LICENSE.TXT cmake test
LLVMBuild.txt configure tools
Makefile docs unittests
Makefile.common examples utils
Makefile.config.in include
Makefile.rules lib
而我的构建文件夹没有。
$ cd llvm3.8/build
$ ls
CMakeCache.txt cmake libexec
CMakeFiles cmake_install.cmake projects
CPackConfig.cmake compile_commands.json share
CPackSourceConfig.cmake docs test
DummyConfigureOutput examples tools
LLVMBuild.cmake include unittests
Makefile install_manifest.txt utils
bin lib
我的构建文件夹是否包含它应该包含的内容?
也许通行证必须写在来源llvm3.8/llvm
?
感谢您的帮助。
你应该在 llvm/lib/Transforms/YourPassName
中写下你的通行证在构建中创建一个目录:
mkdir -p llvm3.8/build/lib/Transforms/YourPassName
我会推荐你使用cmake。由于 autoconf 将在 llvm3.9 中被弃用。对于它:
在 llvm/lib/Transforms/CMakeLists.txt 中添加条目
add_subdirectory(YourPassName)
放入条目后,像其他llvm passes一样在llvm/lib/Transforms/YourPassName中创建CMakeLists.Txt。
现在使用
cmake ../llvm3.8
从 pass 目录中:
make
此外,如果您已经安装了 llvm 并想独立安装,请使用此答案中给出的方法: