当前位置: 首页 > news >正文

Linux多线程服务端编程:使用muduo C++网络库学习之环境配置

本篇记录《Linux多线程服务端编程:使用muduo C++网络库》在ubuntu1804系统上开发环境的配置,包括cmake的安装,boost库的安装与测试,muduo网络库的编译,安装与测试,以及用VS2019开发Linux程序的配置。

首先我们查看系统的g++安装情况, 输入命令:g++ -v

g++版本和gcc一样都是7.5.0

1.安装cmake和boost库

执行命令:sudo apt install g++ cmake make libboost-dev

scott@ubuntu1804:~$ sudo apt install g++ cmake make libboost-dev
[sudo] password for scott: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
make is already the newest version (4.1-9.1ubuntu1).
g++ is already the newest version (4:7.4.0-1ubuntu2.3).
g++ set to manually installed.
The following additional packages will be installed:cmake-data libboost1.65-dev libcurl4 libjsoncpp1 librhash0 libuv1
Suggested packages:cmake-doc ninja-build libboost-doc libboost1.65-doc libboost-atomic1.65-devlibboost-chrono1.65-dev libboost-container1.65-dev libboost-context1.65-devlibboost-coroutine1.65-dev libboost-date-time1.65-devlibboost-exception1.65-dev libboost-fiber1.65-devlibboost-filesystem1.65-dev libboost-graph1.65-devlibboost-graph-parallel1.65-dev libboost-iostreams1.65-devlibboost-locale1.65-dev libboost-log1.65-dev libboost-math1.65-devlibboost-mpi1.65-dev libboost-mpi-python1.65-dev libboost-numpy1.65-devlibboost-program-options1.65-dev libboost-python1.65-devlibboost-random1.65-dev libboost-regex1.65-devlibboost-serialization1.65-dev libboost-signals1.65-devlibboost-stacktrace1.65-dev libboost-system1.65-dev libboost-test1.65-devlibboost-thread1.65-dev libboost-timer1.65-dev libboost-type-erasure1.65-devlibboost-wave1.65-dev libboost1.65-tools-dev libmpfrc++-dev libntl-dev
The following NEW packages will be installed:cmake cmake-data libboost-dev libboost1.65-dev libcurl4 libjsoncpp1librhash0 libuv1
0 upgraded, 8 newly installed, 0 to remove and 91 not upgraded.
Need to get 12.1 MB of archives.
After this operation, 144 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://mirrors.tuna.tsinghua.edu.cn/ubuntu bionic-updates/main amd64 cmake-data all 3.10.2-1ubuntu2.18.04.2 [1,332 kB]
Get:2 http://mirrors.tuna.tsinghua.edu.cn/ubuntu bionic-updates/main amd64 libcurl4 amd64 7.58.0-2ubuntu3.24 [221 kB]
Get:3 http://mirrors.tuna.tsinghua.edu.cn/ubuntu bionic/main amd64 libjsoncpp1 amd64 1.7.4-3 [73.6 kB]
Get:4 http://mirrors.tuna.tsinghua.edu.cn/ubuntu bionic/main amd64 librhash0 amd64 1.3.6-2 [78.1 kB]
Get:5 http://mirrors.tuna.tsinghua.edu.cn/ubuntu bionic/main amd64 libuv1 amd64 1.18.0-3 [64.4 kB]
Get:6 http://mirrors.tuna.tsinghua.edu.cn/ubuntu bionic-updates/main amd64 cmake amd64 3.10.2-1ubuntu2.18.04.2 [3,152 kB]
Get:7 http://mirrors.tuna.tsinghua.edu.cn/ubuntu bionic/main amd64 libboost1.65-dev amd64 1.65.1+dfsg-0ubuntu5 [7,218 kB]
Get:8 http://mirrors.tuna.tsinghua.edu.cn/ubuntu bionic/main amd64 libboost-dev amd64 1.65.1.0ubuntu1 [3,128 B]
Fetched 12.1 MB in 3s (3,837 kB/s) 
Selecting previously unselected package cmake-data.
(Reading database ... 178164 files and directories currently installed.)
Preparing to unpack .../0-cmake-data_3.10.2-1ubuntu2.18.04.2_all.deb ...
Unpacking cmake-data (3.10.2-1ubuntu2.18.04.2) ...
Selecting previously unselected package libcurl4:amd64.
Preparing to unpack .../1-libcurl4_7.58.0-2ubuntu3.24_amd64.deb ...
Unpacking libcurl4:amd64 (7.58.0-2ubuntu3.24) ...
Selecting previously unselected package libjsoncpp1:amd64.
Preparing to unpack .../2-libjsoncpp1_1.7.4-3_amd64.deb ...
Unpacking libjsoncpp1:amd64 (1.7.4-3) ...
Selecting previously unselected package librhash0:amd64.
Preparing to unpack .../3-librhash0_1.3.6-2_amd64.deb ...
Unpacking librhash0:amd64 (1.3.6-2) ...
Selecting previously unselected package libuv1:amd64.
Preparing to unpack .../4-libuv1_1.18.0-3_amd64.deb ...
Unpacking libuv1:amd64 (1.18.0-3) ...
Selecting previously unselected package cmake.
Preparing to unpack .../5-cmake_3.10.2-1ubuntu2.18.04.2_amd64.deb ...
Unpacking cmake (3.10.2-1ubuntu2.18.04.2) ...
Selecting previously unselected package libboost1.65-dev:amd64.
Preparing to unpack .../6-libboost1.65-dev_1.65.1+dfsg-0ubuntu5_amd64.deb ...
Unpacking libboost1.65-dev:amd64 (1.65.1+dfsg-0ubuntu5) ...
Selecting previously unselected package libboost-dev:amd64.
Preparing to unpack .../7-libboost-dev_1.65.1.0ubuntu1_amd64.deb ...
Unpacking libboost-dev:amd64 (1.65.1.0ubuntu1) ...
Setting up libuv1:amd64 (1.18.0-3) ...
Setting up libcurl4:amd64 (7.58.0-2ubuntu3.24) ...
Setting up cmake-data (3.10.2-1ubuntu2.18.04.2) ...
Setting up librhash0:amd64 (1.3.6-2) ...
Setting up libboost1.65-dev:amd64 (1.65.1+dfsg-0ubuntu5) ...
Setting up libjsoncpp1:amd64 (1.7.4-3) ...
Setting up libboost-dev:amd64 (1.65.1.0ubuntu1) ...
Setting up cmake (3.10.2-1ubuntu2.18.04.2) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Processing triggers for libc-bin (2.27-3ubuntu1.5) ...
scott@ubuntu1804:~$ 

安装完成。

1.1 验证cmake安装情况

执行命令cmake --version

显示版本3.10.2说明安装成功,查看安装所在的目录,执行命令:which cmake

安装在/usr/bin目录下。

2.验证boost库安装情况

2.1 检查boost库头文件安装目录

执行命令:find /usr/include -name 'boost'

文件所在目录为/usr/include/boost

2.2 检查boost库文件安装目录

执行命令:ldconfig -p | grep libboost

库文件安装在/usr/lib/x86_64-linux-gnu目录下

scott@ubuntu1804:/usr/lib/x86_64-linux-gnu$ ls -l libboost*
-rw-r--r-- 1 root root  68024 3月   6  2018 libboost_date_time.so.1.65.1
-rw-r--r-- 1 root root 105248 3月   6  2018 libboost_filesystem.so.1.65.1
-rw-r--r-- 1 root root 105032 3月   6  2018 libboost_iostreams.so.1.65.1
-rw-r--r-- 1 root root 955264 3月   6  2018 libboost_locale.so.1.65.1
-rw-r--r-- 1 root root  18544 3月   6  2018 libboost_system.so.1.65.1
-rw-r--r-- 1 root root 150256 3月   6  2018 libboost_thread.so.1.65.1scott@ubuntu1804:/usr/share/doc$ ls -L libboost
libboost1.65-dev/          libboost-iostreams1.65.1/
libboost-date-time1.65.1/  libboost-locale1.65.1/
libboost-dev/              libboost-system1.65.1/
libboost-filesystem1.65.1/ libboost-thread1.65.1/
scott@ubuntu1804:/usr/share/doc$ ls -L libboost

2.3 写代码测试boost库

#include <iostream>
#include <boost/bind.hpp>
#include <string>
using namespace std;class Hello
{
public:void say(string name) { cout << name << " say: hello boost!" << endl; }
};int main()
{Hello h;auto func = boost::bind(&Hello::say, &h, "Scott");func();return 0;
}// 然后通过输入 g++ test.cpp -o test -std=c++11编译形成test;
// 运行    ./test

编译:g++ test.cpp -o test

测试成功。

3.muduo网络库的配置

3.1 下载源码

muduo网络库源码从https://github.com/chenshuo/muduo 获取,源码下载成功后,解压到开发环境的目录,这里解压到/home/scott/trunk/cpp/muduo目录

3.2 编译muduo库

进入到解压目录后,找到build.sh文件,执行./build命令进行编译

scott@ubuntu1804:~/trunk/cpp/muduo$ ./build.sh 
+ pwd
+ SOURCE_DIR=/home/scott/trunk/cpp/muduo
+ BUILD_DIR=../build
+ BUILD_TYPE=release
+ INSTALL_DIR=../release-install-cpp11
+ CXX=g++
+ ln -sf ../build/release-cpp11/compile_commands.json
+ mkdir -p ../build/release-cpp11
+ cd ../build/release-cpp11
+ cmake -DCMAKE_BUILD_TYPE=release -DCMAKE_INSTALL_PREFIX=../release-install-cpp11 -DCMAKE_EXPORT_COMPILE_COMMANDS=ON /home/scott/trunk/cpp/muduo
-- Boost version: 1.65.1
-- Could NOT find Protobuf (missing: Protobuf_INCLUDE_DIR) 
-- Could NOT find CURL (missing: CURL_LIBRARY CURL_INCLUDE_DIR) 
-- found zlib
-- CXX_FLAGS = -g -DCHECK_PTHREAD_RETURN_VALUE -D_FILE_OFFSET_BITS=64 -Wall -Wextra -Werror -Wconversion -Wno-unused-parameter -Wold-style-cast -Woverloaded-virtual -Wpointer-arith -Wshadow -Wwrite-strings -march=native -std=c++11 -rdynamic -O2 -DNDEBUG
-- Configuring done
-- Generating done
-- Build files have been written to: /home/scott/trunk/cpp/build/release-cpp11
+ make
[  5%] Built target muduo_base
[  5%] Built target timezone_util
[  5%] Built target threadpool_test
[  6%] Built target thread_test
[  6%] Built target timestamp_unittest
[  6%] Built target singleton_test
[  6%] Built target boundedblockingqueue_test
[  7%] Built target threadlocalsingleton_test
[  9%] Built target asynclogging_test
[ 10%] Built target processinfo_test
[ 10%] Built target blockingqueue_bench2
[ 10%] Built target threadlocal_test
[ 11%] Built target blockingqueue_test
[ 11%] Built target fileutil_test
[ 12%] Built target timezone_unittest
[ 14%] Built target fork_test
[ 15%] Built target blockingqueue_bench
[ 16%] Built target atomic_unittest
[ 18%] Built target singleton_threadlocal_test
[ 18%] Built target exception_test
[ 18%] Built target gzipfile_test
[ 18%] Built target date_unittest
[ 18%] Built target logfile_test
[ 19%] Built target logging_test
[ 19%] Built target thread_bench
[ 19%] Built target logstream_bench
[ 20%] Built target mutex_test
[ 27%] Built target muduo_net
[ 28%] Built target muduo_http
[ 29%] Built target httpserver_test
[ 32%] Built target muduo_inspect
[ 33%] Built target inspector_test
[ 35%] Built target eventloopthreadpool_unittest
[ 36%] Built target eventloopthread_unittest
[ 36%] Built target echoclient_unittest
[ 36%] Built target channel_test
[ 36%] Built target eventloop_unittest
[ 36%] Built target tcpclient_reg2
[ 37%] Built target echoserver_unittest
[ 38%] Built target tcpclient_reg1
[ 40%] Built target timerqueue_unittest
[ 41%] Built target tcpclient_reg3
[ 42%] Built target asio_chat_loadtest
[ 44%] Built target asio_chat_client
[ 44%] Built target asio_chat_server
[ 44%] Built target asio_chat_server_threaded_efficient
[ 45%] Built target asio_chat_server_threaded_highperformance
[ 46%] Built target asio_chat_server_threaded
[ 48%] Built target asio_tutorial_timer3
[ 48%] Built target asio_tutorial_timer2
[ 48%] Built target asio_tutorial_timer6
[ 48%] Built target asio_tutorial_timer4
[ 49%] Built target asio_tutorial_timer5
[ 50%] Built target fastcgi_test
[ 50%] Built target filetransfer_download2
[ 51%] Built target filetransfer_download
[ 53%] Built target filetransfer_download3
[ 54%] Built target muduo_pubsub
[ 55%] Built target hub
[ 55%] Built target pub
[ 57%] Built target sub
[ 58%] Built target idleconnection_echo
[ 58%] Built target idleconnection_echo2
[ 59%] Built target maxconnection_echo
[ 61%] Built target memcached_footprint
[ 62%] Built target multiplex_server
[ 63%] Built target multiplex_demux
[ 63%] Built target multiplex_server_simple
[ 64%] Built target netty_discard_server
[ 64%] Built target netty_discard_client
[ 64%] Built target netty_echo_client
[ 64%] Built target netty_echo_server2
[ 66%] Built target netty_echo_server
[ 67%] Built target netty_uptime
[ 68%] Built target pingpong_server
[ 68%] Built target pingpong_bench
[ 70%] Built target pingpong_client
[ 70%] Built target roundtrip_udp
[ 71%] Built target roundtrip
[ 72%] Built target shorturl
[ 74%] Built target simple_chargenclient
[ 75%] Built target simple_timeclient
[ 76%] Built target simple_daytime
[ 76%] Built target simple_chargen
[ 79%] Built target simple_allinone
[ 80%] Built target simple_discard
[ 81%] Built target simple_time
[ 81%] Built target simple_echo
[ 83%] Built target tcprelay
[ 83%] Built target balancer
[ 83%] Built target socks4a
[ 83%] Built target sudoku_loadtest
[ 84%] Built target sudoku_client_pipeline
[ 85%] Built target sudoku_solver_basic
[ 87%] Built target sudoku_client_batch
[ 88%] Built target sudoku_solver_multiloop
[ 88%] Built target sudoku_solver_threadpool
[ 89%] Built target sudoku_solver_prod
[ 90%] Built target sudoku_solver_hybrid
[ 90%] Built target twisted_finger07
[ 92%] Built target twisted_finger02
[ 92%] Built target twisted_finger03
[ 93%] Built target twisted_finger01
[ 93%] Built target twisted_finger05
[ 94%] Built target twisted_finger04
[ 96%] Built target twisted_finger06
[ 96%] Built target wordcount_receiver
[ 97%] Built target wordcount_hasher
[ 98%] Built target zeromq_remote_lat
[100%] Built target zeromq_local_lat
scott@ubuntu1804:~/trunk/cpp/muduo$ 

编译成功

3.3 安装muduo库

执行命令./build.sh install

scott@ubuntu1804:~/trunk/cpp/muduo$ ./build.sh install
+ pwd
+ SOURCE_DIR=/home/scott/trunk/cpp/muduo
+ BUILD_DIR=../build
+ BUILD_TYPE=release
+ INSTALL_DIR=../release-install-cpp11
+ CXX=g++
+ ln -sf ../build/release-cpp11/compile_commands.json
+ mkdir -p ../build/release-cpp11
+ cd ../build/release-cpp11
+ cmake -DCMAKE_BUILD_TYPE=release -DCMAKE_INSTALL_PREFIX=../release-install-cpp11 -DCMAKE_EXPORT_COMPILE_COMMANDS=ON /home/scott/trunk/cpp/muduo
-- Boost version: 1.65.1
-- Could NOT find Protobuf (missing: Protobuf_INCLUDE_DIR) 
-- Could NOT find CURL (missing: CURL_LIBRARY CURL_INCLUDE_DIR) 
-- found zlib
-- CXX_FLAGS = -g -DCHECK_PTHREAD_RETURN_VALUE -D_FILE_OFFSET_BITS=64 -Wall -Wextra -Werror -Wconversion -Wno-unused-parameter -Wold-style-cast -Woverloaded-virtual -Wpointer-arith -Wshadow -Wwrite-strings -march=native -std=c++11 -rdynamic -O2 -DNDEBUG
-- Configuring done
-- Generating done
-- Build files have been written to: /home/scott/trunk/cpp/build/release-cpp11
+ make install
[  5%] Built target muduo_base
[  5%] Built target timezone_util
[  5%] Built target threadpool_test
[  6%] Built target thread_test
[  6%] Built target timestamp_unittest
[  6%] Built target singleton_test
[  6%] Built target boundedblockingqueue_test
[  7%] Built target threadlocalsingleton_test
[  9%] Built target asynclogging_test
[ 10%] Built target processinfo_test
[ 10%] Built target blockingqueue_bench2
[ 10%] Built target threadlocal_test
[ 11%] Built target blockingqueue_test
[ 11%] Built target fileutil_test
[ 12%] Built target timezone_unittest
[ 14%] Built target fork_test
[ 15%] Built target blockingqueue_bench
[ 16%] Built target atomic_unittest
[ 18%] Built target singleton_threadlocal_test
[ 18%] Built target exception_test
[ 18%] Built target gzipfile_test
[ 18%] Built target date_unittest
[ 18%] Built target logfile_test
[ 19%] Built target logging_test
[ 19%] Built target thread_bench
[ 19%] Built target logstream_bench
[ 20%] Built target mutex_test
[ 27%] Built target muduo_net
[ 28%] Built target muduo_http
[ 29%] Built target httpserver_test
[ 32%] Built target muduo_inspect
[ 33%] Built target inspector_test
[ 35%] Built target eventloopthreadpool_unittest
[ 36%] Built target eventloopthread_unittest
[ 36%] Built target echoclient_unittest
[ 36%] Built target channel_test
[ 36%] Built target eventloop_unittest
[ 36%] Built target tcpclient_reg2
[ 37%] Built target echoserver_unittest
[ 38%] Built target tcpclient_reg1
[ 40%] Built target timerqueue_unittest
[ 41%] Built target tcpclient_reg3
[ 42%] Built target asio_chat_loadtest
[ 44%] Built target asio_chat_client
[ 44%] Built target asio_chat_server
[ 44%] Built target asio_chat_server_threaded_efficient
[ 45%] Built target asio_chat_server_threaded_highperformance
[ 46%] Built target asio_chat_server_threaded
[ 48%] Built target asio_tutorial_timer3
[ 48%] Built target asio_tutorial_timer2
[ 48%] Built target asio_tutorial_timer6
[ 48%] Built target asio_tutorial_timer4
[ 49%] Built target asio_tutorial_timer5
[ 50%] Built target fastcgi_test
[ 50%] Built target filetransfer_download2
[ 51%] Built target filetransfer_download
[ 53%] Built target filetransfer_download3
[ 54%] Built target muduo_pubsub
[ 55%] Built target hub
[ 55%] Built target pub
[ 57%] Built target sub
[ 58%] Built target idleconnection_echo
[ 58%] Built target idleconnection_echo2
[ 59%] Built target maxconnection_echo
[ 61%] Built target memcached_footprint
[ 62%] Built target multiplex_server
[ 63%] Built target multiplex_demux
[ 63%] Built target multiplex_server_simple
[ 64%] Built target netty_discard_server
[ 64%] Built target netty_discard_client
[ 64%] Built target netty_echo_client
[ 64%] Built target netty_echo_server2
[ 66%] Built target netty_echo_server
[ 67%] Built target netty_uptime
[ 68%] Built target pingpong_server
[ 68%] Built target pingpong_bench
[ 70%] Built target pingpong_client
[ 70%] Built target roundtrip_udp
[ 71%] Built target roundtrip
[ 72%] Built target shorturl
[ 74%] Built target simple_chargenclient
[ 75%] Built target simple_timeclient
[ 76%] Built target simple_daytime
[ 76%] Built target simple_chargen
[ 79%] Built target simple_allinone
[ 80%] Built target simple_discard
[ 81%] Built target simple_time
[ 81%] Built target simple_echo
[ 83%] Built target tcprelay
[ 83%] Built target balancer
[ 83%] Built target socks4a
[ 83%] Built target sudoku_loadtest
[ 84%] Built target sudoku_client_pipeline
[ 85%] Built target sudoku_solver_basic
[ 87%] Built target sudoku_client_batch
[ 88%] Built target sudoku_solver_multiloop
[ 88%] Built target sudoku_solver_threadpool
[ 89%] Built target sudoku_solver_prod
[ 90%] Built target sudoku_solver_hybrid
[ 90%] Built target twisted_finger07
[ 92%] Built target twisted_finger02
[ 92%] Built target twisted_finger03
[ 93%] Built target twisted_finger01
[ 93%] Built target twisted_finger05
[ 94%] Built target twisted_finger04
[ 96%] Built target twisted_finger06
[ 96%] Built target wordcount_receiver
[ 97%] Built target wordcount_hasher
[ 98%] Built target zeromq_remote_lat
[100%] Built target zeromq_local_lat
Install the project...
-- Install configuration: "release"
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/lib/libmuduo_base.a
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/base/AsyncLogging.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/base/Atomic.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/base/BlockingQueue.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/base/BoundedBlockingQueue.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/base/Condition.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/base/CountDownLatch.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/base/CurrentThread.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/base/Date.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/base/Exception.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/base/FileUtil.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/base/GzipFile.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/base/LogFile.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/base/LogStream.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/base/Logging.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/base/Mutex.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/base/ProcessInfo.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/base/Singleton.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/base/StringPiece.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/base/Thread.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/base/ThreadLocal.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/base/ThreadLocalSingleton.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/base/ThreadPool.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/base/TimeZone.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/base/Timestamp.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/base/Types.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/base/WeakCallback.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/base/copyable.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/base/noncopyable.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/lib/libmuduo_net.a
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/net/Buffer.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/net/Callbacks.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/net/Channel.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/net/Endian.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/net/EventLoop.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/net/EventLoopThread.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/net/EventLoopThreadPool.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/net/InetAddress.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/net/TcpClient.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/net/TcpConnection.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/net/TcpServer.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/net/TimerId.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/lib/libmuduo_http.a
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/net/http/HttpContext.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/net/http/HttpRequest.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/net/http/HttpResponse.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/net/http/HttpServer.h
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/lib/libmuduo_inspect.a
-- Installing: /home/scott/trunk/cpp/build/release-install-cpp11/include/muduo/net/inspect/Inspector.h
scott@ubuntu1804:~/trunk/cpp/muduo$ 

头文件安装在build/release-install-cpp11/include目录下,库文件安装在build/release-install-cpp11/lib目录下:

3.4 测试moduo库 

这里以inspector_test为例,运切换到 build/release-cpp11/bin目录, 执行 ./inspector_test

然后通过浏览器访问 192.168.31.61:12345 (192.168.31.61是服务端IP)

也可以输入“192.168.31.61:12345/proc/status  来访问该服务器的状态

到目录为此,moduo的安装就OK了。

在开发时ubuntu系统没有一个良好的集成开发环境,那么有没有一种方式,在windows上写代码在ubuntu上调试运行呢,VS2019提供这种方式,下面是配置VS2019 + ubuntu开发环境。

4. 配置VS2019+ubuntu1804跨平台开发环境

4.1创建项目

选择空项目,【使用适用于Linux的c++从头开发操作,不提供基础文件】

配置项目名称和项目位置

点击【创建】按钮,完成创建

新建源码文件,编写代码:

#include <iostream>
#include <boost/bind.hpp>
#include <string>
using namespace std;class Hello
{
public:void say(string name){cout << name << " say: hello boost!" << endl;}
};int main()
{Hello h;auto func = boost::bind(&Hello::say, &h, "Scott");func();return 0;
}

4.2 配置编译环境

点击菜单【工具】=》【选项】=《【跨平台】=》【连接管理器】=》【添加】

填写相应的信息,点【连接】按钮

代码目录设置,右键项目=》【属性】=》【配置属性】=》【常规】=》【远程根目录】,选择相应的代码存放目录,然后点【确定】按钮。

4.3 编译

代码自动上传到Ubuntu系统的当前用户的projects目录下,生成的可执行文件在bin/x64/Debug目录下。

参考:

https://blog.csdn.net/qq_41453285/article/details/105104845

https://www.cnblogs.com/blj28/p/17142671.html

http://www.dtcms.com/a/435271.html

相关文章:

  • 新质生产力
  • 嵌入式八股文篇——P1 关键字篇
  • 河源正规网站建设价格广东省深圳市公司
  • Core Speech Kit简介
  • 【OTA专题】3.实现简单的boot和APP程序逻辑
  • 营销单页模板网站怎么买网站域名
  • 织梦做商城网站wordpress 自建邮件
  • 小江网站建设必须重视的问题之一
  • Bella Beauty WordPress Theme — Aesthetic Medical Clinic
  • Java_钻石操作符详解
  • 网站做qq微信微博登录爱做的小说网站
  • 大文件推送到git仓库
  • 对招聘网站页面设计做建议wordpress主题cute
  • Spring cloud快速入门
  • STM32 智能垃圾桶项目笔记(五):语音合成模块(SYN6288)配置与语音播报实现
  • 移动互联网开发应聘四川网站营销seo费用
  • 找北京赛车网站开发wordpress 自定义页面
  • MATLAB信号处理实用指南:从入门到精通
  • 成都住建局官网报名入口网址兴安盟seo
  • 中国建设银行手机网站下载安装托管的服务器如何做网站
  • P13977题解
  • 网络推广岗位职责和任职要求成都做整站优化
  • DAY 38 Dataset和Dataloader类 - 2025.10. 2
  • Privacy Eraser(隐私保护软件)多语便携版
  • C4D R20新增功能概述及体积对象SDF类型深度解析
  • 上海做网站公司推荐简单网上书店网站建设php
  • HarmonyOS应用开发深度解析:ArkTS语法精要与UI组件实践
  • 北京示范校建设网站wordpress快速发布
  • 常用网站布局土巴兔这种网站怎么做
  • toLua[四] Examples 03_CallLuaFunction分析