支持折腾!!!



编译安装clang 3.6.0 编译器版本低

====-----编译安装clang3.6.0编译器版本低---------------==============[chunli@CentOSllvm-3.6.0]$tarxfcfe-3.6.0.src.tar.xz[chunli@CentOSllvm-3.6.0]$tarxfclang-tools-extra-3.6.0.src.tar.xz[chunli@CentOSllvm-3.6.0]$tarxfcompiler-rt-3.6.0.src.tar.xz[chunli@CentOSllvm-3.6.0]$tarxfllvm-3.6.0.src.tar.xz[chunli@CentOSllvm-3.6.0]$mvcfe-3.6.0.srcllvm-3.6.0.src/tools/clang[chunli@CentOSllvm-3.6.0]$mvclang-tools-extra-3.6.0.srcllvm-3.6.0.src/tools/clang/tools/extra[chunli@CentOSllvm-3.6.0]$mvcompiler-rt-3.6.0.srcllvm-3.6.0.src/projects/compiler-rt[chunli@CentOSllvm-3.6.0]$cdllvm-3.6.0.src[chunli@CentOSllvm-3.6.0.src]$./configure--enable-optimized--enable-targets=host-only[chunli@CentOSllvm-3.6.0.src]$echo$?[chunli@CentOSllvm-3.6.0.src]$makecc1plus:error:unrecognizedcommandlineoption"-std=c++11"cc1plus:warning:unrecognizedcommandlineoption"-Wno-maybe-uninitialized"解决办法,安装gcc4.8


编译安装clang 3.6.2 编译器自身BUG

=====--------------编译安装clang3.6.2编译器自身BUG---------------------=============需要C++11标准支持需要Python2.7支持[chunli@CentOSllvm3.6.2]$tarxfcfe-3.6.2.src.tar.xz[chunli@CentOSllvm3.6.2]$tarxfclang-tools-extra-3.6.2.src.tar.xz[chunli@CentOSllvm3.6.2]$tarxfcompiler-rt-3.6.2.src.tar.xz[chunli@CentOSllvm3.6.2]$tarxfllvm-3.6.2.src.tar.xz[chunli@CentOSllvm3.6.2]$mvcfe-3.6.2.srcllvm-3.6.2.src/tools/clang[chunli@CentOSllvm3.6.2]$mvcompiler-rt-3.6.2.srcllvm-3.6.2.src/projects/compiler-rt[chunli@CentOSllvm3.6.2]$mvclang-tools-extra-3.6.2.srcllvm-3.6.2.src/tools/clang/extra[chunli@CentOSllvm3.6.2]$mkdirbuild[chunli@CentOSllvm3.6.2]$cdbuild[chunli@CentOSbuild]$../llvm-3.6.2.src/configure--enable-optimized--enable-targets=host-only[chunli@CentOSbuild]$echo$?[chunli@CentOSbuild]$makellvm[4]:LinkingRelease+Assertsexecutableclang-check(withoutsymbols)/tmp/tools/llvm3.6.2/build/tools/clang/tools/clang-check/Release+Asserts/ClangCheck.o:Infunction`std::unique_ptr<clang::tooling::FrontendActionFactory,std::default_delete<clang::tooling::FrontendActionFactory>>clang::tooling::newFrontendActionFactory<(anonymousnamespace)::ClangCheckActionFactory>((anonymousnamespace)::ClangCheckActionFactory*,clang::tooling::SourceFileCallbacks*)::FrontendActionFactoryAdapter::create()':ClangCheck.cpp:(.text._ZZN5clang7tooling24newFrontendActionFactoryIN12_GLOBAL__N_123ClangCheckActionFactoryEEESt10unique_ptrINS0_21FrontendActionFactoryESt14default_deleteIS5_EEPT_PNS0_19SourceFileCallbacksEEN28FrontendActionFactoryAdapter6createEv+0x40):undefinedreferenceto`vtableforstd::unique_ptr<clang::tooling::FrontendActionFactory,std::default_delete<clang::tooling::FrontendActionFactory>>clang::tooling::newFrontendActionFactory<(anonymousnamespace)::ClangCheckActionFactory>((anonymousnamespace)::ClangCheckActionFactory*,clang::tooling::SourceFileCallbacks*)::FrontendActionFactoryAdapter::ConsumerFactoryAdaptor'collect2:error:ldreturned1exitstatus`看起来像是gcc的bug


编译安装clang 3.8.1

=====--------------编译安装clang3.8.1---------------------=============[chunli@CentOSllvm3.8.1]$tarxfcfe-3.8.1.src.tar.xz[chunli@CentOSllvm3.8.1]$tarxfclang-tools-extra-3.8.1.src.tar.xz[chunli@CentOSllvm3.8.1]$tarxfcompiler-rt-3.8.1.src.tar.xz[chunli@CentOSllvm3.8.1]$tarxfllvm-3.8.1.src.tar.xz[chunli@CentOSllvm3.8.1]$mvcfe-3.8.1.srcllvm-3.8.1.src/tools/clang[chunli@CentOSllvm3.8.1]$mvcompiler-rt-3.8.1.srcllvm-3.8.1.src/projects/compiler-rt[chunli@CentOSllvm3.8.1]$mvclang-tools-extra-3.8.1.srcllvm-3.8.1.src/tools/clang/extra#![chunli@CentOSllvm3.8.1]$mkdirbuild&&cdbuild/[chunli@CentOSbuild]$../llvm-3.8.1.src/configure--enable-optimized--enable-targets=host-onlycheckingforpython>=2.7...notfoundconfigure:error:foundpython2.6.6(/usr/bin/python);required>=2.7解决办法去安装编译安装Python2.7


编译安装clang 3.8.1

=====--------------编译安装clang3.8.1---------------------=============[chunli@CentOSllvm3.8.1]$tarxfcfe-3.8.1.src.tar.xz[chunli@CentOSllvm3.8.1]$tarxfclang-tools-extra-3.8.1.src.tar.xz[chunli@CentOSllvm3.8.1]$tarxfcompiler-rt-3.8.1.src.tar.xz[chunli@CentOSllvm3.8.1]$tarxfllvm-3.8.1.src.tar.xz[chunli@CentOSllvm3.8.1]$mvcfe-3.8.1.srcllvm-3.8.1.src/tools/clang[chunli@CentOSllvm3.8.1]$mvcompiler-rt-3.8.1.srcllvm-3.8.1.src/projects/compiler-rt[chunli@CentOSllvm3.8.1]$mvclang-tools-extra-3.8.1.srcllvm-3.8.1.src/tools/clang/extra#![chunli@CentOSllvm3.8.1]$mkdirbuild&&cdbuild/[chunli@CentOSbuild]$../llvm-3.8.1.src/configure--enable-optimized--enable-targets=host-only[chunli@CentOSbuild]$echo$?[chunli@CentOSbuild]$makellvm[4]:LinkingRelease+Assertsexecutableclang-check(withoutsymbols)/home/chunli/tools/llvm3.8.1/build/tools/clang/tools/clang-check/Release+Asserts/ClangCheck.o:Infunction`std::unique_ptr<clang::tooling::FrontendActionFactory,std::default_delete<clang::tooling::FrontendActionFactory>>clang::tooling::newFrontendActionFactory<(anonymousnamespace)::ClangCheckActionFactory>((anonymousnamespace)::ClangCheckActionFactory*,clang::tooling::SourceFileCallbacks*)::FrontendActionFactoryAdapter::create()':ClangCheck.cpp:(.text._ZZN5clang7tooling24newFrontendActionFactoryIN12_GLOBAL__N_123ClangCheckActionFactoryEEESt10unique_ptrINS0_21FrontendActionFactoryESt14default_deleteIS5_EEPT_PNS0_19SourceFileCallbacksEEN28FrontendActionFactoryAdapter6createEv+0x40):undefinedreferenceto`vtableforstd::unique_ptr<clang::tooling::FrontendActionFactory,std::default_delete<clang::tooling::FrontendActionFactory>>clang::tooling::newFrontendActionFactory<(anonymousnamespace)::ClangCheckActionFactory>((anonymousnamespace)::ClangCheckActionFactory*,clang::tooling::SourceFileCallbacks*)::FrontendActionFactoryAdapter::ConsumerFactoryAdaptor'collect2:error:ldreturned1exitstatus`编译器缺陷?ld连接报错,更换为gcc4.8.5解决


编译安装clang 3.8.1

=====--------------编译安装clang3.8.1---------------------=============[chunli@CentOSllvm3.8.1]$tarxfcfe-3.8.1.src.tar.xz[chunli@CentOSllvm3.8.1]$tarxfclang-tools-extra-3.8.1.src.tar.xz[chunli@CentOSllvm3.8.1]$tarxfcompiler-rt-3.8.1.src.tar.xz[chunli@CentOSllvm3.8.1]$tarxfllvm-3.8.1.src.tar.xz[chunli@CentOSllvm3.8.1]$mvcfe-3.8.1.srcllvm-3.8.1.src/tools/clang[chunli@CentOSllvm3.8.1]$mvcompiler-rt-3.8.1.srcllvm-3.8.1.src/projects/compiler-rt[chunli@CentOSllvm3.8.1]$mvclang-tools-extra-3.8.1.srcllvm-3.8.1.src/tools/clang/extra#![chunli@CentOSllvm3.8.1]$mkdirbuild&&cdbuild/[chunli@CentOSbuild]$../llvm-3.8.1.src/configure--enable-optimized--enable-targets=host-only[chunli@CentOSbuild]$echo$?[chunli@CentOSbuild]$makellvm[4]:Copyingruntimelibrarylinux/builtins-i386tobuilddirllvm[4]:Copyingruntimelibrarylinux/profile-i386tobuilddircp:cannotstat`/home/chunli/tools/llvm3.8.1/build/tools/clang/runtime/compiler-rt/clang_linux/builtins-i386/libcompiler_rt.a':Nosuchfileordirectorycp:cannotstat`/home/chunli/tools/llvm3.8.1/build/tools/clang/runtime/compiler-rt/clang_linux/profile-i386/libcompiler_rt.a':Nosuchfileordirectory`这种问题不知道怎么搞.....放弃这个clang版本



编译安装clang 3.9.1

=====--------------编译安装clang3.9.1---------------------=============需要C++11标准支持需要Python2.7支持[chunli@CentOS~]$cdtools/[chunli@CentOStools]$tarxfcfe-3.9.1.src.tar.xz[chunli@CentOStools]$tarxfcompiler-rt-3.9.1.src.tar.xz[chunli@CentOStools]$tarxfllvm-3.9.1.src.tar.xz[chunli@CentOStools]$mvcfe-3.9.1.srcllvm-3.9.1.src/tools/clang[chunli@CentOStools]$mvcompiler-rt-3.9.1.srcllvm-3.9.1.src/projects/compiler-rt[chunli@CentOStools]$mkdirllvm_build[chunli@CentOStools]$cdllvm_build[chunli@CentOSllvm_build]$cmake-G"UnixMakefiles"../llvm-3.9.1.srcCMakeErroratcmake/modules/CheckCompilerVersion.cmake:12(message):HostGCCversionmustbeatleast4.7!CallStack(mostrecentcallfirst):cmake/config-ix.cmake:14(include)CMakeLists.txt:461(include).......................................................系统自带的编译器没有卸载,卸载系统自带的编译器,再次执行cmake他会提示找不到/usr/bin/cc,/usr/bin/c++如下:



编译YouCompleteMe 找不到编译器

=====--------------编译YouCompleteMe找不到编译器-------------=============[chunli@CentOS~]$cd~[chunli@CentOS~]$mkdirycm_build/&&cdycm_build/[chunli@CentOSycm_build]$sudoyumremovegcc#删除自带的低版本gcc[chunli@CentOSycm_build]$sudoyumremoveg++#删除自带的低版本g++[chunli@CentOSycm_build]$cmake-G"UnixMakefiles"-DEXTERNAL_LIBCLANG_PATH=/usr/local/lib/libclang.so.3.9.~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/--TheCcompileridentificationisunknown--TheCXXcompileridentificationisunknownCMakeErroratCMakeLists.txt:26(project):TheCMAKE_C_COMPILER:/usr/bin/ccisnotafullpathtoanexistingcompilertool.TellCMakewheretofindthecompilerbysettingeithertheenvironmentvariable"CC"ortheCMakecacheentryCMAKE_C_COMPILERtothefullpathtothecompiler,ortothecompilernameifitisinthePATH.CMakeErroratCMakeLists.txt:26(project):TheCMAKE_CXX_COMPILER:/usr/bin/c++isnotafullpathtoanexistingcompilertool.TellCMakewheretofindthecompilerbysettingeithertheenvironmentvariable"CXX"ortheCMakecacheentryCMAKE_CXX_COMPILERtothefullpathtothecompiler,ortothecompilernameifitisinthePATH.--Configuringincomplete,errorsoccurred!Seealso"/home/chunli/ycm_build/CMakeFiles/CMakeOutput.log".Seealso"/home/chunli/ycm_build/CMakeFiles/CMakeError.log".[chunli@CentOSycm_build]$解决办法/usr/local/bin/gcc[chunli@CentOSycm_build]$sudoln-s/usr/local/bin/gcc/usr/bin/cc[chunli@CentOSycm_build]$sudoln-s/usr/local/bin/g++/usr/bin/c++



编译安装clang 3.9.1, 内存耗尽

=====--------------编译安装clang3.9.1,内存耗尽---------------------=============需要C++11标准支持需要Python2.7支持[chunli@CentOS~]$cdtools/[chunli@CentOStools]$tarxfcfe-3.9.1.src.tar.xz[chunli@CentOStools]$tarxfcompiler-rt-3.9.1.src.tar.xz[chunli@CentOStools]$tarxfllvm-3.9.1.src.tar.xz[chunli@CentOStools]$mvcfe-3.9.1.srcllvm-3.9.1.src/tools/clang[chunli@CentOStools]$mvcompiler-rt-3.9.1.srcllvm-3.9.1.src/projects/compiler-rt[chunli@CentOStools]$mkdirllvm_build[chunli@CentOStools]$cdllvm_build[chunli@CentOSllvm_build]$cmake-G"UnixMakefiles"../llvm-3.9.1.src[chunli@CentOSllvm_build]$make../../../../lib/libclangStaticAnalyzerCheckers.a:couldnotreadsymbols:Memoryexhaustedcollect2:error:ldreturned1exitstatusmake[2]:***[bin/clang-3.9]Error1make[1]:***[tools/clang/tools/driver/CMakeFiles/clang.dir/all]Error2make:***[all]Error2解决[chunli@CentOSllvm_build]$cmake-G"UnixMakefiles"-DCMAKE_BUILD_TYPE=Release-DLLVM_TARGETS_TO_BUILD="X86"../llvm-3.9.1.src[chunli@CentOSllvm_build]$make-j4


启动vim报错

启动vim报错TheycmdserverSHUTDOWN(restartwith':YcmRestartServer')....code-11.Usethe':YcmToggleLogs'commandtocheckthelogs.:YcmDebugInfo查看错误PrintingYouCompleteMedebuginformation...--Clientlogfile:/tmp/ycm_RtQuPY.log--Servererrored,nodebuginfofromserver--Serverrunningat:http://127.0.0.1:52237--ServerprocessID:2947--Serverlogfiles:--/tmp/ycmd_52237_stdout_lrHj02.log--/tmp/ycmd_52237_stderr_80SRfh.logPressENTERortypecommandtocontinue[chunli@CentOS~]$vim/tmp/ycm_RtQuPY.log2017-03-0918:02:22,569-ERROR-Unabletoconnecttoserver:YcmDiagsNativefiletypecompletionnotsupportedforcurrentfile,cannotforcerecompilation.:messagesMessagesmaintainer:BramMoolenaar<Bram@vim.org>"main.c"5L,35CTheycmdserverSHUTDOWN(restartwith':YcmRestartServer').Unexpectedexitcode1.Usethe':YcmToggleLogs'commandtocheckthelogs.:YcmRestartServerRestartingycmdserver...当时没有被解决





安装Python2.7

观察老版本的python相关信息[chunli@CentOS~]$whichpython/usr/bin/python[chunli@CentOS~]$python--versionPython2.6.6[chunli@CentOS~]$/usr/bin/python--versionPython2.6.6[chunli@CentOSPython-2.7.13]$ll/usr/bin/python[chunli@CentOSPython-2.7.13]$ll/usr/bin/python*lrwxrwxrwx.1rootroot6088Nov222013/usr/bin/pythonlrwxrwxrwx.1rootroot6Mar523:29/usr/bin/python2->python-rwxr-xr-x.1rootroot6088Nov222013/usr/bin/python2.6安装Python2.7.13[chunli@CentOS~]$cdsrc/[chunli@CentOSsrc]$tarxfPython-2.7.13.tar.xz[chunli@CentOSsrc]$cdPython-2.7.13[chunli@CentOSPython-2.7.13]$./configure--prefix=/usr/local/python2.7--enable-shared&&make-j4[chunli@CentOSPython-2.7.13]$echo$?[chunli@CentOSPython-2.7.13]$sudomakeinstall[chunli@CentOSPython-2.7.13]$echo$?[chunli@CentOSPython-2.7.13]$sudorm-rf/usr/bin/python[chunli@CentOSPython-2.7.13]$sudoln-s/usr/local/python2.7/bin/python2.7/usr/bin/python[chunli@CentOSPython-2.7.13]$python--versionpython:errorwhileloadingsharedlibraries:libpython2.7.so.1.0:cannotopensharedobjectfile:Nosuchfileordirectory[chunli@CentOSPython-2.7.13]$sudovim/etc/ld.so.conf/usr/local/python2.7/lib/[chunli@CentOSPython-2.7.13]$sudoldconfig-v[chunli@CentOSPython-2.7.13]$python--versionPython2.7.13[chunli@CentOSPython-2.7.13]$发现yum报错:[chunli@CentOSPython-2.7.13]$sudoyumcleanallTherewasaproblemimportingoneofthePythonmodulesrequiredtorunyum.Theerrorleadingtothisproblemwas:NomodulenamedyumPleaseinstallapackagewhichprovidesthismodule,orverifythatthemoduleisinstalledcorrectly.解决办法[chunli@CentOSPython-2.7.13]$sudovim/usr/bin/yum-#!/usr/bin/python+#!/usr/bin/python2.6[chunli@CentOSPython-2.7.13]$sudoyumcleanall[chunli@CentOSPython-2.7.13]$sudoyumlist记录python2.7的config路径[chunli@CentOSconfig]$ll/usr/local/python2.7/lib/python2.7/configtotal9216-rw-r--r--.1rootroot2200Mar1101:13config.c-rw-r--r--.1rootroot1507Mar1101:13config.c.in-rwxr-xr-x.1rootroot7122Mar1101:13install-sh-rw-r--r--.1rootroot9303726Mar1101:13libpython2.7.a-rw-r--r--.1rootroot51793Mar1101:13Makefile-rwxr-xr-x.1rootroot7430Mar1101:13makesetup-rw-r--r--.1rootroot21216Mar1101:13python.o-rw-r--r--.1rootroot18479Mar1101:13Setup-rw-r--r--.1rootroot368Mar1101:13Setup.config-rw-r--r--.1rootroot41Mar1101:13Setup.local




编译安装cmake

[chunli@CentOSsrc]$tarxfcmake-3.8.0-rc2.tar.gz[chunli@CentOSsrc]$cdcmake-3.8.0-rc2[chunli@CentOScmake-3.8.0-rc2]$./bootstrap/home/chunli/src/cmake-3.8.0-rc2/Bootstrap.cmk/cmake:/usr/lib/libstdc++.so.6:version`GLIBCXX_3.4.20'notfound(requiredby/home/chunli/src/cmake-3.8.0-rc2/Bootstrap.cmk/cmake)/home/chunli/src/cmake-3.8.0-rc2/Bootstrap.cmk/cmake:/usr/lib/libstdc++.so.6:version`CXXABI_1.3.9'notfound(requiredby/home/chunli/src/cmake-3.8.0-rc2/Bootstrap.cmk/cmake)/home/chunli/src/cmake-3.8.0-rc2/Bootstrap.cmk/cmake:/usr/lib/libstdc++.so.6:version`GLIBCXX_3.4.15'notfound(requiredby/home/chunli/src/cmake-3.8.0-rc2/Bootstrap.cmk/cmake)/home/chunli/src/cmake-3.8.0-rc2/Bootstrap.cmk/cmake:/usr/lib/libstdc++.so.6:version`GLIBCXX_3.4.21'notfound(requiredby/home/chunli/src/cmake-3.8.0-rc2/Bootstrap.cmk/cmake)查找,并没有找到[chunli@CentOS~]$strings/usr/lib/libstdc++.so.6|grepGLIBCXX_3.4GLIBCXX_3.4GLIBCXX_3.4.1GLIBCXX_3.4.2GLIBCXX_3.4.3GLIBCXX_3.4.4GLIBCXX_3.4.5GLIBCXX_3.4.6GLIBCXX_3.4.7GLIBCXX_3.4.8GLIBCXX_3.4.9GLIBCXX_3.4.10GLIBCXX_3.4.11GLIBCXX_3.4.12GLIBCXX_3.4.13[chunli@CentOS~]$查找新的库[chunli@CentOS~]$sudofind/usr/-namelibstdc++.so.6*/usr/local/lib/libstdc++.so.6.0.22/usr/local/lib/libstdc++.so.6/usr/lib/libstdc++.so.6/usr/lib/libstdc++.so.6.0.13[chunli@CentOS~]$可以发现全找到了[chunli@CentOS~]$strings/usr/local/lib/libstdc++.so.6.0.22|grep-E'GLIBCXX_3.4.20|CXXABI_1.3.9|GLIBCXX_3.4.15|GLIBCXX_3.4.21'GLIBCXX_3.4.15GLIBCXX_3.4.20GLIBCXX_3.4.21CXXABI_1.3.9[chunli@CentOS~]$查看原库的连接[chunli@CentOS~]$ll/usr/lib/libstdc++.so.6lrwxrwxrwx.1rootroot19Mar1021:31/usr/lib/libstdc++.so.6->libstdc++.so.6.0.13修改到新的连接[chunli@CentOS~]$sudorm-rf/usr/lib/libstdc++.so.6[chunli@CentOS~]$sudoln-s/usr/local/lib/libstdc++.so.6.0.22/usr/lib/libstdc++.so.6查看新的连接[chunli@CentOS~]$ll/usr/lib/libstdc++.so.6lrwxrwxrwx.1rootroot34Mar1102:02/usr/lib/libstdc++.so.6->/usr/local/lib/libstdc++.so.6.0.22[chunli@CentOS~]$继续cmake[chunli@CentOScmake-3.8.0-rc2]$./bootstrap[chunli@CentOScmake-3.8.0-rc2]$echo$?[chunli@CentOScmake-3.8.0-rc2]$make-j4[chunli@CentOScmake-3.8.0-rc2]$echo$?[chunli@CentOScmake-3.8.0-rc2]$sudomakeinstall[chunli@CentOScmake-3.8.0-rc2]$echo$?[chunli@CentOScmake-3.8.0-rc2]$cmake--versioncmakeversion3.8.0-rc2cmake安装完成!



安装vim 插件

[chunli@CentOSsrc]$mvVundle.vim~/.vim/bundle/[chunli@CentOSsrc]$mvYouCompleteMe~/.vim/bundle/[chunli@CentOSsrc]$vim+PluginInstall+qall报错ImportError:Nomodulenamedurllib3YouCompleteMeunavailable:Nomodulenamedurllib3解决[chunli@CentOSbin]$sudoyumlist|grepurllib3python-urllib3.noarch1.10.2-1.el6base[chunli@CentOS~]$sudoyuminstallpython-urllib3[chunli@CentOSPython-2.7.13]$sudoyuminstallpython-devel[chunli@CentOSpython2.7]$sudorm-rf/usr/local/python2.7/lib/python2.7/site-packages/[chunli@CentOSpython2.7]$sudoln-s/usr/lib/python2.6/site-packages/usr/local/python2.7/lib/python2.7/site-packages再报错:YouCompleteMeunavailable:Nomodulenamed_ssl太烦了..............