我正在尝试使用 cmake 和 g++4.8.1 在 mingw32 (www.mingw.org) 上构建 llvm-3.4 稳定版本。我遇到了这个错误:
[ 98%] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/include-al
l.c.obj
In file included from c:/temp/llvm-3.4/tools/llvm-c-test/include-all.c:33:0:
C:/temp/llvm-3.4/include/llvm-c/lto.h:158:54: error: unknown type name 'off_t'
size_t map_size, off_t offset);
经过一番研究,发现这是由于子目录llvm-c-test
使用非标准类型off_t
,但要求自己使用标准编译造成的C,并且 llvm-c-test 不是必需的。
我尝试通过在 tools/CMakeList.txt
中注释掉 llvm-c-test 来禁用它。但我仍然收到此错误。
我的问题是,如何禁用 llvm-c-test 的编译或以其他方式解决此错误。
最佳答案
像您一样,我确信必须有一种正确的方法来使用 CMake 禁用目标。我最终放弃了 CMake(至少对于 MinGW)并使用 makefile 配置脚本。使用此构建方法的说明是 here .
然后,要禁用 llvm-c-test 目标,您只需从 < llvm >/tools/Makefile 中的 PARALLEL_DIRS 变量末尾删除它即可:
PARALLEL_DIRS := opt llvm-as llvm-dis llc llvm-ar llvm-nm llvm-link \
lli llvm-extract llvm-mc bugpoint llvm-bcanalyzer llvm-diff \
macho-dump llvm-objdump llvm-readobj llvm-rtdyld \
llvm-dwarfdump llvm-cov llvm-size llvm-stress llvm-mcmarkup \
llvm-profdata llvm-symbolizer obj2yaml yaml2obj llvm-c-test
有another problem目前使用 MinGW 构建(来自 llvm trunk),您可能也会遇到这种情况。 make 命令行修复似乎有效。
关于c - 如何在使用 mingw32 构建 llvm 时禁用 llvm-c-test,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21794237/