青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Error

C++博客 首頁 新隨筆 聯系 聚合 管理
  217 Posts :: 61 Stories :: 32 Comments :: 0 Trackbacks

使用CMake GCC和Clang的/ LLVM之間切換

cmake llvm clang
我公司擁有一批項目的CMake的,我希望能夠方便地切換GCC或鐺/ LLVM他們。我相信(請如果我錯了!)表示鏘我需要進行如下設置:
 SET (CMAKE_C_COMPILER    "/usr/bin/clang")  SET (CMAKE_C_FLAGS    "-Wall -std=c99")  SET (CMAKE_C_FLAGS_DEBUG   "-g")  SET (CMAKE_C_FLAGS_MINSIZEREL  "-Os -DNDEBUG")  SET (CMAKE_C_FLAGS_RELEASE  "-O4 -DNDEBUG")  SET (CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g")  SET (CMAKE_CXX_COMPILER    "/usr/bin/clang++")  SET (CMAKE_CXX_FLAGS    "-Wall")  SET (CMAKE_CXX_FLAGS_DEBUG   "-g")  SET (CMAKE_CXX_FLAGS_MINSIZEREL  "-Os -DNDEBUG")  SET (CMAKE_CXX_FLAGS_RELEASE  "-O4 -DNDEBUG")  SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g")  SET (CMAKE_AR  "/usr/bin/llvm-ar")  SET (CMAKE_LINKER "/usr/bin/llvm-ld")  SET (CMAKE_NM  "/usr/bin/llvm-nm")  SET (CMAKE_OBJDUMP "/usr/bin/llvm-objdump")  SET (CMAKE_RANLIB "/usr/bin/llvm-ranlib") 
是否有這些和默認的GCC變量之間的切換,最好是全系統的變化,而不是具體的項目(即不只是將它們添加到項目的的CMakeLists.txt)一個簡單的方法? 另外,是否有必要的llvm-*節目鐺的gcc時代替,而不是系統默認值?有什么區別?
本文地址 :CodeGo.net/340772/ 
------------------------------------------------------------------------------------------------------------------------- 
1. CMake的榮譽的變量CCCXX在檢測到C和C ++編譯器
$ export CC=/usr/bin/clang $ export CXX=/usr/bin/clang++ $ cmake .. -- The C compiler identification is Clang -- The CXX compiler identification is Clang 
具體標志可以通過將它們放入一個系統范圍的CMake文件并指向CMAKE_USER_MAKE_RULES_OVERRIDE變量,它被覆蓋。創建一個文件~/ClangOverrides.txt其內容如下:
SET (CMAKE_C_FLAGS_INIT    "-Wall -std=c99") SET (CMAKE_C_FLAGS_DEBUG_INIT   "-g") SET (CMAKE_C_FLAGS_MINSIZEREL_INIT  "-Os -DNDEBUG") SET (CMAKE_C_FLAGS_RELEASE_INIT  "-O4 -DNDEBUG") SET (CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "-O2 -g") SET (CMAKE_CXX_FLAGS_INIT    "-Wall") SET (CMAKE_CXX_FLAGS_DEBUG_INIT   "-g") SET (CMAKE_CXX_FLAGS_MINSIZEREL_INIT  "-Os -DNDEBUG") SET (CMAKE_CXX_FLAGS_RELEASE_INIT  "-O4 -DNDEBUG") SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-O2 -g") 
后綴_init會讓CMake的初始化相應的*_FLAGS變量與給定的值。然后調用cmake的以下面的方式:
$ cmake -DCMAKE_USER_MAKE_RULES_OVERRIDE=~/ClangOverrides.txt .. 
終于到了LLVM的binutils力,設置內部變量_CMAKE_TOOLCHAIN_PREFIX。這個變量是由榮幸CMakeFindBinUtils模塊:
$ cmake -D_CMAKE_TOOLCHAIN_PREFIX=llvm- .. 
把這個放在一起你可以寫一個shell包裝它設置了變量CCCXX然后調用cmake的可變覆蓋。 
2. 全系統的C ++的變化對Ubuntu的: sudo用update-alternatives-配置C ++ 將打印是這樣的:
 Selection Path    Priority Status ------------------------------------------------------------ * 0   /usr/bin/g++  20  auto mode  1   /usr/bin/clang++ 10  manual mode  2   /usr/bin/g++  20  manual mode 
然后,只需選擇鐺++。 
3. 你的
option(USE_CLANG "build application with clang" OFF) # OFF is the default 
然后在包裹如果()S中的設置:
if(USE_CLANG)  SET (...)  .... endif(USE_CLANG) 
這樣,它會顯示為在GUI配置工具的cmake的選項。 為了讓您在整個系統可以在變量的默認值或保持與答案。 
4. 你絕對不需要不同的LLVM-AR等程序:
SET (CMAKE_AR  "/usr/bin/llvm-ar") SET (CMAKE_LINKER "/usr/bin/llvm-ld") SET (CMAKE_NM  "/usr/bin/llvm-nm") SET (CMAKE_OBJDUMP "/usr/bin/llvm-objdump") SET (CMAKE_RANLIB "/usr/bin/llvm-ranlib") 
這些都是為了工作,對LLVM內部格式,因此阿仁'到您的應用程序的生成。 作為一個說明 CodeGo.net,O4將在你的程序調用的LTO,你可能不希望(這樣會大大)和鐺默認為C99模式,使標志不是必需的兩種。 
5. 你的語法:$ENV{environment-variable}在你的CMakeLists.txt訪問變量。你可以適當地創建一個初始化的變量集的腳本,只是在引用這些變量的CMakeLists.txt文件。
posted on 2015-08-20 11:52 Enic 閱讀(1445) 評論(0)  編輯 收藏 引用 所屬分類: linux
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久福利精品| 欧美精品一区二区久久婷婷| 另类激情亚洲| 久久精品夜色噜噜亚洲a∨| 这里只有精品视频在线| 亚洲一区欧美一区| 久久av一区二区三区亚洲| 欧美一级专区免费大片| 久久久亚洲影院你懂的| 欧美好吊妞视频| 日韩天堂av| 亚洲一区在线视频| 欧美在线免费视屏| 美女视频网站黄色亚洲| 欧美日韩性视频在线| 国产乱码精品一区二区三区av| 国产精品免费一区二区三区在线观看| 国产精品午夜电影| 在线精品国精品国产尤物884a| 欧美三区在线观看| 老色鬼久久亚洲一区二区| 欧美大尺度在线| 欧美日韩国产二区| 国产一区二区黄| 日韩视频中文字幕| 欧美一区激情| 亚洲啪啪91| 亚洲一区在线观看视频| 另类专区欧美制服同性| 国产精品久久久久久久9999| 在线观看亚洲视频啊啊啊啊| 亚洲一区二区三区免费在线观看| 久久久久国产精品www| 亚洲人成小说网站色在线| 午夜精品久久久久久久99樱桃 | 99视频有精品| 久久久亚洲一区| 国产精品久久久久久超碰| 在线观看三级视频欧美| 欧美一级二区| 亚洲精品在线免费| 久久蜜桃精品| 国内在线观看一区二区三区| 亚洲中午字幕| 91久久久久久| 久久久久久久成人| 国产精品一区二区视频| 99国产成+人+综合+亚洲欧美| 久久精品欧美| 亚洲欧美在线另类| 国产伦精品一区二区三区高清版 | 亚洲国产二区| 久久精品伊人| 久久精品道一区二区三区| 国产精品免费观看在线| 亚洲一级网站| 99国产精品99久久久久久粉嫩| 美女黄网久久| 黑人巨大精品欧美黑白配亚洲 | 国产精品v欧美精品∨日韩| 亚洲精品国产精品国自产观看浪潮 | 午夜精品福利一区二区蜜股av| 欧美日韩少妇| 9i看片成人免费高清| 亚洲高清一二三区| 欧美精品日韩一本| 一区二区三区高清在线观看| 亚洲国产另类精品专区| 欧美片在线观看| 久久影视精品| 午夜久久电影网| 韩国自拍一区| 欧美成人午夜| 免费欧美在线| 日韩一二三在线视频播| 日韩系列在线| 国产精品劲爆视频| 欧美一区二区高清在线观看| 午夜免费在线观看精品视频| 国产综合久久久久久鬼色| 开心色5月久久精品| 久久午夜视频| 亚洲最新中文字幕| 在线一区观看| 国产一区观看| 亚洲国产精品www| 国产精品久久久久国产a级| 久久精品av麻豆的观看方式| 久久综合免费视频影院| 亚洲人成人77777线观看| 亚洲美女av电影| 国产日韩成人精品| 亚洲国产精品福利| 国产精品视频免费观看| 麻豆精品国产91久久久久久| 欧美精品午夜| 久久香蕉国产线看观看av| 欧美高清视频一区| 午夜欧美精品| 欧美极品在线视频| 久久婷婷av| 欧美日韩国产va另类| 久久精品国产久精国产一老狼| 欧美国产精品久久| 欧美专区中文字幕| 欧美日韩1234| 美女精品在线观看| 国产精品久久久久av免费| 欧美大片在线看| 国产欧美日韩专区发布| 亚洲黄网站在线观看| 国产综合第一页| 亚洲图片在线观看| 亚洲精品日本| 久久精品欧洲| 午夜在线精品偷拍| 欧美日韩一区二区免费视频| 久久婷婷成人综合色| 国产精品人人做人人爽人人添| 亚洲高清成人| 亚洲人成在线影院| 久久在线播放| 久久人人97超碰精品888| 国产精品电影网站| 欧美激情一区二区| 亚洲第一精品福利| 久久精品日韩| 久久精品综合一区| 国产区精品在线观看| 亚洲免费一区二区| 亚洲一区二区三区中文字幕| 久久精品一区蜜桃臀影院| 久久精品夜色噜噜亚洲aⅴ| 国产欧美大片| 国产欧美综合一区二区三区| 久久亚洲综合色| 国产一级一区二区| 午夜一区二区三区在线观看| 欧美一级午夜免费电影| 欧美先锋影音| 亚洲视频日本| 亚洲一区免费观看| 国产精品视频一二| 午夜精品久久久久影视| 欧美在线视频导航| 欧美午夜a级限制福利片| 亚洲视频在线视频| 欧美一区激情| 一区久久精品| 理论片一区二区在线| 亚洲精品免费在线| 亚洲欧美国产高清va在线播| 国产乱肥老妇国产一区二 | 国产精品主播| 欧美亚洲日本一区| 免费日本视频一区| 日韩午夜激情av| 欧美性淫爽ww久久久久无| 亚洲一区在线免费观看| 久久精品综合一区| 亚洲精品影视在线观看| 欧美区日韩区| 亚洲一区二区在线视频| 久久久久国产精品一区二区| 亚洲风情亚aⅴ在线发布| 蜜桃伊人久久| 亚洲免费婷婷| 亚洲国产一区二区三区高清| 亚洲一级在线| 国内综合精品午夜久久资源| 欧美成人日韩| 亚洲欧美影院| 亚洲第一在线| 欧美一区二区三区在线播放| 在线欧美一区| 国产精品卡一卡二卡三| 久久久久国产精品厨房| 亚洲欧洲精品一区二区三区波多野1战4| 亚洲一区二区三区四区五区午夜 | 国产精品久久久久久久久久久久久久| 亚洲欧美日韩国产| 免费黄网站欧美| 亚洲欧美中日韩| 91久久午夜| 国内精品久久久久影院 日本资源| 欧美大成色www永久网站婷| 亚洲欧美日韩精品久久亚洲区 | 亚洲片在线观看| 欧美一级在线视频| 亚洲美女在线一区| 精品粉嫩aⅴ一区二区三区四区| 欧美日韩直播| 欧美国产日韩亚洲一区| 欧美一区免费视频| 一本色道久久| 亚洲激情午夜| 免费看亚洲片| 久久久7777| 欧美中文字幕视频| 午夜电影亚洲|