GCC arasında geçiş ve Çınlama/LLVM CMake kullanarak
Projeler CMake kullanarak inşa edilen bir dizi var ve kolayca GCC veya clang yapar/LLVM bunları derlemek kullanarak arasında geçiş yapabilmek istiyorum. İnanıyorum (eğer yanlışım varsa düzeltin lütfen!) aşağıdaki ata Çınlama kullanmak için:
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")
Bu ve varsayılan GCC değişkenleri, belirli bir proje yerine, sistem genelinde bir değişiklik (yani sadece bir proje içine ekleme cmakelists.txt) tercihen arasında geçiş kolay bir yolu var mı?
Ayrıca, gcc yerine çınlama derleme sistemi varsayılanları yerine llvm-*
programlar kullanmak gerekli mi? Ne fark eder?
CEVAP
Onur CMake çevre C ve C derleyici kullanmak için algılama üzerine CC
CXX
değişkenler:
$ export CC=/usr/bin/clang
$ export CXX=/usr/bin/clang
$ cmake ..
-- The C compiler identification is Clang
-- The CXX compiler identification is Clang
Derleyici belirli bayrakları sistemi geniş CMake bir dosya içine koyarak ve CMAKE_USER_MAKE_RULES_OVERRIDE değişken işaret ederek kılınabilir. Aşağıdaki içeriği ile 10* *dosyası oluşturun:
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")
Soneki _İNİT CMake verilen değer ile *_FLAGS
ilgili değişkenin ilk değeri yapacaktır. Çağır şu şekilde cmake sonra:
$ cmake -DCMAKE_USER_MAKE_RULES_OVERRIDE=~/ClangOverrides.txt ..
Son olarak LLVM, binutils kullanımını zorlamak için, iç değişken _CMAKE_TOOLCHAIN_PREFIX
ayarlayın. Bu değişken CMakeFindBinUtils
modülü tarafından onurlandırıldı
$ cmake -D_CMAKE_TOOLCHAIN_PREFIX=llvm- ..
Bu tüm koyarak birlikte çevre değişkenleri CC
CXX
ayarlar kabuk sarıcı yazabilirsiniz ve sonra belirtilen değişken geçersiz kılar ile cmake çağırır.
Belirli bir dosya/Çınlama LLVM kullana...
Nasıl geçiş yüksekliği: 0; height: aut...
Sekmeler arasında geçiş yapmak için na...
Örnek: Faaliyet ve Hizmet kullanarak M...
Nasıl sütun Raylar geçiş kullanarak da...