ホームページ 運用・保守 Linuxの運用と保守 CMake を使用して Linux ネットワーク アプリケーションを構築するための構成のヒント

CMake を使用して Linux ネットワーク アプリケーションを構築するための構成のヒント

Jul 06, 2023 pm 04:57 PM
cmake: ビルドツール Linux: オペレーティング システム

CMake を使用して Linux ネットワーク アプリケーションを構築するための構成のヒント

はじめに:
Linux ネットワーク アプリケーションを開発する場合、適切なビルド システムを使用することが非常に重要です。 CMake は、アプリケーションの構成と構築を簡単に行うためのクロスプラットフォーム ビルド自動化ツールです。この記事では、CMake を使用して Linux ネットワーク アプリケーションを構成および構築する方法を紹介し、いくつかの実用的なコード例を示します。

CMake のインストールと構成:
CMake の使用を開始する前に、まずシステムに CMake をインストールする必要があります。 CMake は、次のコマンドを使用してほとんどの Linux ディストリビューションにインストールできます:

sudo apt-get install cmake
ログイン後にコピー

CMake がインストールされたら、CMake プロジェクトを初期化するための新しいディレクトリを作成できます。プロジェクトの名前が MyNetworkApp であると仮定すると、次のコマンドを実行できます。

mkdir MyNetworkApp && cd MyNetworkApp
cmake .
ログイン後にコピー

これにより、現在のディレクトリに CMakeLists.txt ファイルが生成され、そこでプロジェクトを構成できます。

ネットワーク アプリケーションを構成します:
CMakeLists.txt ファイルでは、プロジェクト名、ソース ファイル、依存関係など、プロジェクトの関連情報を構成できます。まず、プロジェクト名と最小バージョン要件を設定しましょう:

cmake_minimum_required(VERSION 3.10)
project(MyNetworkApp)
ログイン後にコピー

次に、ソース ファイルをプロジェクトに追加できます。ネットワーク アプリケーションに network.cpp というソース ファイルが必要であると仮定すると、次のコマンドを使用してそれをプロジェクトに追加できます。

add_executable(MyNetworkApp network.cpp)
ログイン後にコピー

次に、プロジェクトのコンパイル オプションとリンク オプションを構成できます。たとえば、C 11 標準を使用してコードをコンパイルする必要がある場合は、次のコマンドを使用できます。

set(CMAKE_CXX_STANDARD 11)
ログイン後にコピー

アプリケーションが特定のライブラリに依存している場合は、次のコマンドを使用してこれらのライブラリにリンクできます。 ##

target_link_libraries(MyNetworkApp ${SOME_LIBRARY})
ログイン後にコピー

ビルド プロセス中に、コンパイラ フラグやプリプロセッサ定義などの他のオプションを設定することもできます。ニーズに応じて特定のオプションを構成できます。詳細については、CMake のドキュメントを参照してください。

アプリケーションのビルドと実行:

プロジェクトを構成したら、CMake を使用してアプリケーションをビルドできます。プロジェクト ディレクトリで次のコマンドを実行するだけです。

cmake --build .
ログイン後にコピー

これにより、コードがコンパイルされ、現在のディレクトリに実行可能ファイルが生成されます。実行可能ファイルの名前が MyNetworkApp であると仮定すると、次のコマンドを実行してアプリケーションを実行できます。

./MyNetworkApp
ログイン後にコピー

サンプル コード:

特定のポートとネットワークをリッスンする単純なネットワーク サーバー アプリケーションを開発するとします。リクエストを受信するとウェルカム メッセージを送信します。次のコードを 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;
}
ログイン後にコピー
この単純なネットワーク アプリケーションは、サーバー ソケットを作成し、ポート 8080 にバインドし、クライアント接続をリッスンします。クライアントが接続すると、ウェルカム メッセージが送信されます。このコードを network.cpp ファイルに保存し、上記のコードを CMakeLists.txt ファイルに追加できます。

結論:

CMake は、Linux ネットワーク アプリケーションの構成と構築を簡単に行うのに役立つ、非常に強力なビルド自動化ツールです。 CMakeLists.txt ファイルを適切に構成することで、ソース ファイルの追加、コンパイル オプションの設定、ライブラリのリンクなどを簡単に行うことができます。この記事が、読者が CMake を使用して Web アプリケーションを構築する方法についての洞察を得るのに役立つことを願っています。

参考:

    CMake 公式ドキュメント: https://cmake.org/documentation/

以上がCMake を使用して Linux ネットワーク アプリケーションを構築するための構成のヒントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

パターンマッチングにLinuxで正規表現(正規表現)を使用するにはどうすればよいですか? パターンマッチングにLinuxで正規表現(正規表現)を使用するにはどうすればよいですか? Mar 17, 2025 pm 05:25 PM

この記事では、パターンマッチング、ファイル検索、テキスト操作、グレップ、SED、awkなどのツールの詳細、ファイル検索、テキスト操作のためにLinuxで正規表現(Regex)を使用する方法について説明します。

TOP、HTOP、VMSTATなどのツールを使用してLinuxのシステムパフォーマンスを監視するにはどうすればよいですか? TOP、HTOP、VMSTATなどのツールを使用してLinuxのシステムパフォーマンスを監視するにはどうすればよいですか? Mar 17, 2025 pm 05:28 PM

この記事では、Linuxシステムのパフォーマンスを監視するためにTop、HTOP、およびVMSTATを使用して、効果的なシステム管理のための独自の機能とカスタマイズオプションを詳述することについて説明します。

LinuxでSSHに2要素認証(2FA)を実装するにはどうすればよいですか? LinuxでSSHに2要素認証(2FA)を実装するにはどうすればよいですか? Mar 17, 2025 pm 05:31 PM

この記事では、Google Authenticatorを使用してLinux上のSSH用の2要素認証(2FA)のセットアップ、インストール、構成、およびトラブルシューティング手順の詳細に関するガイドを提供します。 Enhanced Secなど、2FAのセキュリティ利益を強調しています

sudoを使用して、Linuxのユーザーに高い特権を付与するにはどうすればよいですか? sudoを使用して、Linuxのユーザーに高い特権を付与するにはどうすればよいですか? Mar 17, 2025 pm 05:32 PM

この記事では、LinuxのSudo特権を管理する方法について説明します。重要な焦点は、 /etc /sudoersの安全性とアクセスを制限することです。

パッケージマネージャー(apt、yum、dnf)を使用してLinuxのソフトウェアパッケージを管理するにはどうすればよいですか? パッケージマネージャー(apt、yum、dnf)を使用してLinuxのソフトウェアパッケージを管理するにはどうすればよいですか? Mar 17, 2025 pm 05:26 PM

記事では、APT、Yum、およびDNFを使用してLinuxでソフトウェアパッケージの管理を行い、インストール、更新、および削除をカバーしています。さまざまな分布に対する機能と適合性を比較します。

Linux Distributionを構築およびカスタマイズするにはどうすればよいですか? Linux Distributionを構築およびカスタマイズするにはどうすればよいですか? Mar 14, 2025 pm 04:45 PM

この記事では、Linuxディストリビューションの構築とカスタマイズのプロセス、ベースシステムの選択、LFSやDebianベースのシステムなどのビルドツール、パッケージのカスタマイズ、カーネルの変更について詳しく説明しています。また、Softwarの管理についても議論しています

Linux(静的IP、DHCP、DNS)でネットワークを構成するにはどうすればよいですか? Linux(静的IP、DHCP、DNS)でネットワークを構成するにはどうすればよいですか? Mar 14, 2025 pm 04:55 PM

この記事では、静的IP、DHCP、およびDNS構成のセットアップに焦点を当てたLinuxネットワークの構成に関するガイドを提供します。構成ファイルを編集し、ネットワークサービスを再起動して変更を適用するための手順を詳述します。

最も人気のあるLinux分布(Ubuntu、Debian、Fedora、Centos)は何ですか? 最も人気のあるLinux分布(Ubuntu、Debian、Fedora、Centos)は何ですか? Mar 14, 2025 pm 04:50 PM

この記事では、人気のあるLinuxディストリビューションについて説明します:Ubuntu、Debian、Fedora、およびCentosは、異なるユーザーへのユニークな機能と適合性に焦点を当てています。 UbuntuとDebianのリリースサイクル、ソフトウェアの可用性、サポート、およびHighを比較してください

See all articles