Nasıl C etkinleştirmek CMake 11 için?
CMake oluşturulan makefile benim program derlemek için çalıştırmaya çalıştığımda, range based for loops are not supported in c 98 mode
Bu hatayı alıyorum. Benim için add_definitions(-std=c 0x)
CMakeLists.txt ama yardım etmedi eklemeye çalıştım. Bunu da denedim:
if(CMAKE_COMPILER_IS_GNUCXX)
add_definitions(-std=gnu 0x)
endif()
g --version
, ben ne zaman alıyorum:
(Ubuntu/4.6.1-9ubuntu3 Linaro) g 4.6.1
C 11 özellikleri etkinleştirebilirim nasıl CMake kullanarak anlamıyorum. Yardım lütfen!
_ _ _ _ . DÜZENLE
Aynı zamanda da işe yaramazsa bir ** 6, denedim söylemeyi unutmuşum.
CEVAP
CMake komutu target_compile_features()
gerekli C özelliğini belirtmek için kullanılırcxx_range_for
. CMake sonra C standardı kullanılacak neden olacaktır.
cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)
project(foobar CXX)
add_executable(foobar main.cc)
target_compile_features(foobar PRIVATE cxx_range_for)
Kullanmaya gerek yokadd_definitions(-std=c 11)
ya da CMake değişkeni değiştirmek içinCMAKE_CXX_FLAGS
çünkü CMake C derleyici uygun komut satırı bayrakları ile çağrılır. emin olun
Belki C programı cxx_range_for
dışında C özellikleri kullanır. CMAKE_CXX_KNOWN_FEATURES
C listeleri CMake genel özelliği seçebilirsiniz vardır.
target_compile_features()
yerine de C standardı açıkça CMake özelliklerini ayarlayarak belirleyebilirsiniz
CXX_STANDARD
ve
CMake hedef için CXX_STANDARD_REQUIRED
.
Ayrıca my more detailed answer bkz.
Nasıl derleme bağlama hatası günlük (F...
Nasıl böyle büyük mükafat olarak NSZom...
Nasıl Apache 2.2 için büyü etkinleştir...
Nasıl PHP kısa etiketleri etkinleştirm...
Nasıl curl etkinleştirmek için, Ubuntu...