尊龙凯时人生就是搏

ʹÓÃCMake¹¹½¨LinuxÍøÂçÓ¦ÓóÌÐòµÄÉèÖü¼ÇÉ

ʹÓÃcmake¹¹½¨linuxÍøÂçÓ¦ÓóÌÐòµÄÉèÖü¼ÇÉ

СÐò£º

ÔÚ¿ª·¢LinuxÍøÂçÓ¦ÓóÌÐòʱ£¬Ê¹ÓÃÒ»¸öºÃµÄ¹¹½¨ÏµÍ³ÊǺÜÊÇÖ÷ÒªµÄ ¡£CMakeÊÇÒ»¸ö¿çƽ̨µÄ¹¹½¨×Ô¶¯»¯¹¤¾ß£¬¿ÉÒÔ×ÊÖúÎÒÃÇÇáËɵØÉèÖú͹¹½¨ÎÒÃǵÄÓ¦ÓóÌÐò ¡£±¾ÎĽ«ÏÈÈÝÔõÑùʹÓÃCMakeÀ´ÉèÖú͹¹½¨LinuxÍøÂçÓ¦ÓóÌÐò£¬²¢ÌṩһЩÊÊÓõĴúÂëʾÀý ¡£

CMakeµÄ×°ÖúÍÉèÖãº

ÔÚ×îÏÈʹÓÃCMake֮ǰ£¬ÎÒÃÇÊ×ÏÈÐèÒªÔÚÎÒÃǵÄϵͳÉÏ×°ÖÃCMake ¡£Ê¹ÓÃÒÔÏÂÏÂÁî¿ÉÒÔÔÚ´ó´ó¶¼Linux¿¯ÐаæÉÏ×°ÖÃCMake£º

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

µÇ¼ºó¸´ÖÆ

ʾÀý´úÂ룺

¼ÙÉèÎÒÃÇÒª¿ª·¢Ò»¸ö¼òÆÓµÄÍøÂçЧÀÍÆ÷Ó¦ÓóÌÐò£¬¼àÌýij¸öÌض¨¶Ë¿Ú£¬²¢ÔÚÊÕµ½ÇëÇóʱ·¢ËÍÒ»Ìõ½Ó´ýÐÂÎÅ ¡£ÎÒÃÇ¿ÉÒÔʹÓÃÒÔÏ´úÂë×÷Ϊ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À´¹¹½¨ËûÃǵÄÍøÂçÓ¦ÓóÌÐò ¡£

²Î¿¼ÎÄÏ×£º

CMake¹Ù·½Îĵµ: https://cmake.org/documentation/

ÒÔÉϾÍÊÇʹÓÃCMake¹¹½¨LinuxÍøÂçÓ¦ÓóÌÐòµÄÉèÖü¼ÇɵÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡

ÃâÔð˵Ã÷£ºÒÔÉÏչʾÄÚÈÝȪԴÓÚÏàÖúýÌå¡¢ÆóÒµ»ú¹¹¡¢ÍøÓÑÌṩ»òÍøÂçÍøÂçÕûÀí£¬°æȨÕùÒéÓë±¾Õ¾Î޹أ¬ÎÄÕÂÉæ¼°¿´·¨Óë¿´·¨²»´ú±í尊龙凯时人生就是搏ÂËÓÍ»úÍø¹Ù·½Ì¬¶È£¬Çë¶ÁÕß½ö×ö²Î¿¼ ¡£±¾ÎĽӴýתÔØ£¬×ªÔØÇë˵Ã÷À´ÓÉ ¡£ÈôÄúÒÔΪ±¾ÎÄÇÖÕ¼ÁËÄúµÄ°æȨÐÅÏ¢£¬»òÄú·¢Ã÷¸ÃÄÚÈÝÓÐÈκÎÉæ¼°ÓÐÎ¥¹«µÂ¡¢Ã°·¸Ö´·¨µÈÎ¥·¨ÐÅÏ¢£¬ÇëÄúÁ¬Ã¦ÁªÏµ尊龙凯时人生就是搏ʵʱÐÞÕý»òɾ³ý ¡£

Ïà¹ØÐÂÎÅ

ÁªÏµ尊龙凯时人生就是搏

13452372176

¿É΢ÐÅÔÚÏß×Éѯ

ÊÂÇéʱ¼ä£ºÖÜÒ»ÖÁÖÜÎ壬9:30-18:30£¬½ÚãåÈÕÐÝÏ¢

QR code
sitemap¡¢ÍøÕ¾µØͼ