环境:ubuntu12.04 32 + llvm-3.2
目前的最新版本已到了3.7.0,尝试了这个版本,不过首先就需要cmake版本为2.8.12以上,我的os环境里默认的cmake安装版本2.8.7,因此还需要去手动下载cmake,想着可能还有别的依赖也是如此,就先放弃最新版本了。
出错记录及一些编译结果图示如下:
1. cmake
(1)CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
- apt-get install g++
(2)Could NOT find LibXml2 (missing: LIBXML2_LIBRARIES LIBXML2_INCLUDE_DIR)
- apt-get intall libxml2 libxml2-dev
(3)Could NOT find Subversion (missing: Subversion_SVN_EXECUTABLE)
- apt-get install subversion
2. make
(1)提示出错uint64_t在本平台没有定义,出错的源文件是build/include/llvm/Support/DataTypes.h
网上没找到相关解法,只说uint64_t需要typedef定义。点进源文件看一下,发现了几个声明以及注释,跟uint64_t有关。
32行处有两行注释,试着把这两个宏定义了,保存然后继续make就不再报错了,但是否有其他影响不清楚。
/* #undef HAVE_UINT64_T */
/* #undef HAVE_U_INT64_T */
#define HAVE_UINT64_T 1
#define HAVE_U_INT64_T 1
然后就静等编译进度到100%吧,这个过程要一段时间,编译结束就是这样了。
查看编译出来的build/bin目录以及clang版本。./clang xxx/hello.c生成的a.out默认在clang同一目录下。