Komut satırında CMake seçeneği () nasıl ayarlanır


92

Aşağıdakileri içeren bir CMakeLists.txt oluşturdum

project(P4V)
cmake_minimum_required(VERSION 2.6)

option(BUILD_STATIC_LIBS "Build the static library" ON)
option(BUILD_SHARED_LIBS "Build the shared library" ON)
option(BUILD_TESTS "Build test programs" OFF)

include_directories(${CMAKE_SOURCE_DIR}/include)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin)
set(CMAKE_BUILD_TYPE Release)

add_subdirectory(src)
if(BUILD_TESTS)
    add_subdirectory(tests)
endif(BUILD_TESTS)

Varsayılan olarak BUILD_TESTS KAPALI'dır, CMake GUI olmadan ama cmake komutunun kendisi ile nasıl AÇIK hale getirebilirim? Aşağıdakini denedim ama işe yaramıyor

cmake .. -G %1 -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=ON -DBUILD_TESTS=ON

24
..Tartışmadan önce bayraklarınızı listeleyin .
arrowd


5998186'nın cevabının işaret ettiği gibi 'cmake MyProjectFolder -DMyOption = ON'
Langley

1
CMakeCache.txt dosyasını tekrar cmake'den önce kaldırdınız mı?
Henry Hu

Yanıtlar:


101

CMakeCache.txt dosyasını silin ve şunu deneyin:

cmake -G %1 -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=ON -DBUILD_TESTS=ON ..

Yolu eklemeden önce tüm komut satırı tanımlarınızı girmelisiniz.


KAPALI özel olarak nasıl belirtilir? CUDA seçeneğini kapatmış gibi görünmüyorum.
Ébe Isaac

7
@ Ébe-isaac Bir seçeneği açıkça KAPATMAK istiyorsanız sadece kullanın -DOPTION=OFF.
Tomáš Mlčoch

Artık yoldan önce seçenekleri geçmek zorunda değilsiniz gibi görünüyor: cmake .. -G <whatever> -DOPTION=ONCMake 3.16.2 ile benim için iyi çalışıyor.
Alexander Revo

8

Ek bir seçenek, derleme klasörünüze gidip şu komutu kullanmaktır. ccmake .

Bu GUI gibidir ancak terminal tabanlıdır. Bu açıkça bir kurulum betiğine yardımcı olmaz, ancak en azından bir UI olmadan çalıştırılabilir.

Sahip olduğum tek uyarı, bazen uyarılarınız olduğunda üretmenize izin vermeyeceği. bu durumda arayüzden çıkın vecmake .


OP, özellikle "GUI yok" ister.
sancho.s ReinstateMonicaCellio

2

bu benim için çalışıyor:

cmake -D DBUILD_SHARED_LIBS=ON DBUILD_STATIC_LIBS=ON DBUILD_TESTS=ON ..
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.