Rumah > Operasi dan penyelenggaraan > operasi dan penyelenggaraan linux > Petua konfigurasi untuk membina aplikasi rangkaian Linux menggunakan CMake

Petua konfigurasi untuk membina aplikasi rangkaian Linux menggunakan CMake

PHPz
Lepaskan: 2023-07-06 16:57:19
asal
1433 orang telah melayarinya

Petua konfigurasi untuk membina aplikasi web Linux menggunakan CMake

Petikan:
Apabila membangunkan aplikasi web Linux, adalah sangat penting untuk menggunakan sistem binaan yang baik. CMake ialah alat automasi binaan merentas platform yang membantu kami mengkonfigurasi dan membina aplikasi kami dengan mudah. Artikel ini akan memperkenalkan cara menggunakan CMake untuk mengkonfigurasi dan membina aplikasi rangkaian Linux, dan menyediakan beberapa contoh kod praktikal.

Pemasangan dan Konfigurasi CMake:
Sebelum kami mula menggunakan CMake, kami terlebih dahulu perlu memasang CMake pada sistem kami. CMake boleh dipasang pada kebanyakan pengedaran Linux menggunakan arahan berikut:

sudo apt-get install cmake
Salin selepas log masuk

Setelah CMake dipasang, kami boleh mencipta direktori baharu untuk memulakan projek CMake kami. Dengan mengandaikan projek kami dinamakan MyNetworkApp, kami boleh melaksanakan arahan berikut:

mkdir MyNetworkApp && cd MyNetworkApp
cmake .
Salin selepas log masuk

Ini akan menjana fail CMakeLists.txt dalam direktori semasa, di mana kami boleh mengkonfigurasi projek kami.

Konfigurasikan aplikasi web:
Dalam fail CMakeLists.txt, kami boleh mengkonfigurasi maklumat berkaitan projek kami, termasuk nama projek, fail sumber, kebergantungan, dsb. Mula-mula, mari kita tetapkan nama projek dan keperluan versi minimum:

cmake_minimum_required(VERSION 3.10)
project(MyNetworkApp)
Salin selepas log masuk

Kemudian, kita boleh menambah fail sumber pada projek kita. Dengan mengandaikan bahawa aplikasi rangkaian kami memerlukan fail sumber yang dipanggil network.cpp, kami boleh menambahkannya pada projek kami menggunakan arahan berikut:

add_executable(MyNetworkApp network.cpp)
Salin selepas log masuk

Seterusnya, kami boleh mengkonfigurasi pilihan kompilasi dan pilihan pemautan projek kami. Sebagai contoh, jika kita perlu menyusun kod kita menggunakan piawaian C++11, kita boleh menggunakan arahan berikut:

set(CMAKE_CXX_STANDARD 11)
Salin selepas log masuk

Jika aplikasi kita bergantung pada perpustakaan tertentu, kita boleh memautkan dengan perpustakaan ini menggunakan arahan berikut:

target_link_libraries(MyNetworkApp ${SOME_LIBRARY})
Salin selepas log masuk

Semasa proses binaan, kami juga boleh menetapkan pilihan lain seperti bendera pengkompil, definisi prapemproses, dsb. Pilihan khusus boleh dikonfigurasikan mengikut keperluan kami Untuk butiran, sila rujuk dokumentasi CMake.

Bina dan jalankan aplikasi:
Setelah kami mengkonfigurasi projek kami, kami boleh menggunakan CMake untuk membina aplikasi kami. Hanya laksanakan arahan berikut dalam direktori projek:

cmake --build .
Salin selepas log masuk

Ini akan menyusun kod kami dan menjana fail boleh laku dalam direktori semasa. Dengan mengandaikan boleh laku kami dipanggil MyNetworkApp, kami boleh melaksanakan arahan berikut untuk menjalankan aplikasi kami:

./MyNetworkApp
Salin selepas log masuk

Kod contoh:
Andaikan kami ingin membangunkan aplikasi pelayan rangkaian mudah yang mendengar pada port tertentu dan menerima Hantar mesej alu-aluan apabila diminta. Kita boleh menggunakan kod berikut sebagai network.cpp:

#include <iostream>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>

int main() {
    int server_fd, new_socket;
    struct sockaddr_in address;
    int opt = 1;
    int addrlen = sizeof(address);
    char buffer[1024] = {0};
    const char* welcomeMessage = "Welcome to My Network App
";

    // 创建套接字
    if ((server_fd = socket(AF_INET, SOCK_STREAM, 0)) == 0) {
        perror("socket failed");
        exit(EXIT_FAILURE);
    }

    // 设置套接字选项
    if (setsockopt(server_fd, SOL_SOCKET, SO_REUSEADDR | SO_REUSEPORT,
                                                  &opt, sizeof(opt))) {
        perror("setsockopt");
        exit(EXIT_FAILURE);
    }

    address.sin_family = AF_INET;
    address.sin_addr.s_addr = INADDR_ANY;
    address.sin_port = htons(8080);

    // 绑定套接字到特定端口
    if (bind(server_fd, (struct sockaddr *)&address, sizeof(address))<0) {
        perror("bind failed");
        exit(EXIT_FAILURE);
    }

    // 监听端口,最多连接10个客户端
    if (listen(server_fd, 10) < 0) {
        perror("listen");
        exit(EXIT_FAILURE);
    }

    // 接收客户端连接请求,并发送欢迎消息
    if ((new_socket = accept(server_fd, (struct sockaddr *)&address,
                     (socklen_t*)&addrlen))<0) {
        perror("accept");
        exit(EXIT_FAILURE);
    }
    send(new_socket, welcomeMessage, strlen(welcomeMessage), 0);
    printf("Welcome message sent
");

    return 0;
}
Salin selepas log masuk

Aplikasi rangkaian mudah ini mencipta soket pelayan, mengikat ke port 8080 dan mendengar sambungan pelanggan. Apabila pelanggan menyambung, ia menghantar mesej alu-aluan. Kami boleh menyimpan kod ini ke fail network.cpp dan menambah kod di atas pada fail CMakeLists.txt kami.

Kesimpulan:
CMake ialah alat automasi binaan yang sangat berkuasa yang boleh membantu kami mengkonfigurasi dan membina aplikasi web Linux kami dengan mudah. Dengan mengkonfigurasi fail CMakeLists.txt dengan betul, kami boleh menambah fail sumber dengan mudah, menetapkan pilihan kompilasi, perpustakaan pautan, dsb. Mudah-mudahan artikel ini akan membantu pembaca mendapatkan pandangan tentang cara menggunakan CMake untuk membina aplikasi web mereka.

Rujukan:

  • CMbuat dokumentasi rasmi: https://cmake.org/documentation/

Atas ialah kandungan terperinci Petua konfigurasi untuk membina aplikasi rangkaian Linux menggunakan CMake. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan