GNU/Linux >> Belajar Linux >  >> Linux

instruksi khusus OS di CMAKE:Bagaimana caranya?

Gunakan

if (WIN32)
    #do something
endif (WIN32)

atau

if (UNIX)
    #do something
endif (UNIX)

atau

if (MSVC)
    #do something
endif (MSVC)

atau serupa

lihat CMembuat Variabel yang Bergunadan Platform Pemeriksaan CMembuat


Secara Umum

Anda dapat mendeteksi dan menentukan variabel untuk beberapa sistem operasi seperti itu:

Mendeteksi Microsoft Windows

if(WIN32)
    # for Windows operating system in general
endif()

Atau:

if(MSVC OR MSYS OR MINGW)
    # for detecting Windows compilers
endif()

Mendeteksi Apple MacOS

if(APPLE)
    # for MacOS X or iOS, watchOS, tvOS (since 3.10.3)
endif()

Mendeteksi Unix dan Linux

if(UNIX AND NOT APPLE)
    # for Linux, BSD, Solaris, Minix
endif()

Masalah linker khusus Anda

Untuk mengatasi masalah Anda dengan wsock32 khusus Windows perpustakaan, hapus saja dari sistem lain, seperti itu:

if(WIN32)
    target_link_libraries(${PROJECT_NAME} bioutils wsock32)
else
    target_link_libraries(${PROJECT_NAME} bioutils)
endif()

Anda memiliki beberapa kata khusus dari CMAKE, lihatlah:

if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
    // do something for Linux
else
    // do something for other OS

Mengingat ini adalah masalah umum, geronto-posting:

    if(UNIX AND NOT APPLE)
        set(LINUX TRUE)
    endif()

    # if(NOT LINUX) should work, too, if you need that
    if(LINUX) 
        message(STATUS ">>> Linux")
        # linux stuff here
    else()
        message(STATUS ">>> Not Linux")
        # stuff that should happen not on Linux 
    endif()

CBuat dokumen logika boolean

CMembuat nama platform, dll.


Linux
  1. Bagaimana Cara Membunuh Proses yang Berjalan pada Port Tertentu di Linux?

  2. Cara gzip semua atau file tertentu di Linux

  3. Cara menonaktifkan perintah khusus untuk pengguna tertentu di Linux

  1. Cara mengatur ID proses di Linux untuk program tertentu

  2. Bagaimana cara menonaktifkan ipv6 pada antarmuka tertentu di linux?

  3. Bagaimana cara mematikan Linux pada waktu tertentu dari terminal?

  1. Cara menggunakan BusyBox di Linux

  2. Cara Mengekstrak File Tar ke Direktori Tertentu atau Berbeda di Linux

  3. Cara Menghapus Perintah Tertentu Dari Riwayat Bash Di Linux