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

网站建设推进计划做网站一共需要多少钱

网站建设推进计划,做网站一共需要多少钱,手机棋牌网站大全,做pc端网站代理商Logger中需要的依赖文件如下:https://download.csdn.net/download/Word_And_Me_/89556265 目录 项目目录结构 CMake配置 主目录 CMakeLists.txt src 目录下的 CMakeLists.txt 案例代码整理 main.cpp Logger.h Logger.cpp 构建和运行 1、编译项目 2、运行项…

Logger中需要的依赖文件如下:https://download.csdn.net/download/Word_And_Me_/89556265

目录

项目目录结构

CMake配置

主目录 CMakeLists.txt

 src 目录下的 CMakeLists.txt

案例代码整理

main.cpp

Logger.h

Logger.cpp

构建和运行

1、编译项目

2、运行项目

外部包配置

opencv配置


项目目录结构

ProjectRoot/
│── bin/                  # 存放编译后的可执行文件
│── build/                # 编译过程中生成的中间文件
│── includes/             # 存放头文件(.h)
│── libs/                 # 存放依赖库文件
│── logs/                 # 存放日志文件
│── src/                  # 存放源代码(.cpp 和 .h)
│   ├── main.cpp
│   ├── Logger.cpp
│   ├── Logger.h
│── CMakeLists.txt        # 主CMake配置文件
│── README.md             # 项目说明文档

CMake配置

主目录 CMakeLists.txt

cmake_minimum_required(VERSION 3.10)  # 指定项目需要的最低 CMake 版本project(test_modbus LANGUAGES CXX)  # 指定项目名称和支持的语言# 设置 C++ 标准
set(CMAKE_CXX_STANDARD 11)  # 设置c++标准版本 11
set(CMAKE_CXX_STANDARD_REQUIRED True)  # 要求项目必须使用C++11标准
set(CMAKE_CXX_EXTENSIONS False)  # 禁用GNU扩展,仅使用严格的C++11标准# 设置可执行文件输出路径,程序主目录下的bin文件夹
set (EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) # 添加外部包含目录
include_directories(${CMAKE_SOURCE_DIR}/includes ${CMAKE_SOURCE_DIR}/src)# 添加库目录
link_directories(${CMAKE_SOURCE_DIR}/libs)# 添加子目录
add_subdirectory (src)

 src 目录下的 CMakeLists.txt

aux_source_directory (. SRC_LIST) # 将当前目录下的所有源文件添加到SRC_LIST变量中
# 可更换为显式管理文件:set(SRC_LIST main.cpp module1.cpp module2.cpp)add_executable(test_modbus ${SRC_LIST}) # 创建可执行文件test_modbus# 以下配置的include和lib均使用target_ 针对某个生成文件指定链接库# link threads库
target_link_libraries(test_modbus PRIVATE pthread)# 查找libmodbus库
find_package(PkgConfig REQUIRED)
pkg_check_modules(LIBMODBUS REQUIRED libmodbus)# 链接libmodbus库
target_link_libraries(test_modbus PRIVATE ${LIBMODBUS_LIBRARIES})# 查找opencv
find_package(OpenCV REQUIRED)
target_include_directories(test_modbus PRIVATE ${OpenCV_INCLUDE_DIRS})
target_link_libraries(test_modbus PRIVATE ${OpenCV_LIBS})# 可用于展示一些需要的信息
# message(STATUS "OpenCV version: ${OpenCV_VERSION}")
# message(STATUS "OpenCV include directories: ${OpenCV_INCLUDE_DIRS}")
# message(STATUS "OpenCV libraries: ${OpenCV_LIBS}")
# message(STATUS "OpenCV library directories: ${OpenCV_LIBRARY_DIRS}")

案例代码整理

main.cpp

#include <iostream>
#include <modbus/modbus.h>
#include <thread>
#include <opencv2/opencv.hpp>
#include <cstring>
#include "Logger.h"using namespace std;int main() {std::cout << "OpenCV Version: " << CV_VERSION << std::endl;initLogger();modbus_t* ctx;int rc, i;logger->info("Modbus test start");ctx = modbus_new_tcp("192.168.0.150", 502);if (ctx == NULL) {logger->error("Unable to allocate libmodbus context");return -1;}cout<<"ctx:"<<ctx<<endl;logger->info("Modbus context created");//modbus_set_debug(ctx, TRUE); // 开启调试模式if (modbus_set_slave(ctx, 1) == -1) {logger->error("Failed to set slave ID: {}", modbus_strerror(errno));modbus_free(ctx);return -1;}logger->info("Slave ID set");if (modbus_connect(ctx) == -1) {logger->error("Connection failed: {}", modbus_strerror(errno));modbus_free(ctx);return -1;}logger->info("Modbus connected");// 读取 M1~M10(线圈寄存器,地址 0x0000 起)//uint8_t M1_10[15];//rc = modbus_read_bits(ctx, 0x0000, 15, M1_10); // 读取 10 个线圈//if (rc == -1) {//    logger->error("Failed to read M1~M10: {}", modbus_strerror(errno));//    modbus_close(ctx);//    modbus_free(ctx);//    return -1;//}//std::cout << "M1~M10 values: ";//for (int i = 0; i < 15; ++i) {//    std::cout << (int)M1_10[i] << " ";//}//std::cout << std::endl;// 读取 Y000~Y004(线圈寄存器,地址 0x3300 起)uint8_t Y0_4[5];rc = modbus_read_bits(ctx, 0x3300, 5, Y0_4); // 读取 10 个线圈if (rc == -1) {fprintf(stderr, "Failed to read M1~M10:%s\n", modbus_strerror(errno));modbus_close(ctx);modbus_free(ctx);return -1;}std::cout << "Y000~Y004 values: ";for (int i = 0; i < 5; ++i) {std::cout << (int)Y0_4[i] << " ";}cout << endl;修改M1~M10//uint8_t writer[15] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1};//uint8_t temp[2];//rc = modbus_write_bit(ctx, 0x000b, false);//if (rc == -1) {//    fprintf(stderr, "Failed to write M11:%s\n", modbus_strerror(errno));//    modbus_close(ctx);//    modbus_free(ctx);//    return -1;//}logger->info("Modbus test end");return 0;
}

Logger.h

// #pragma once
#ifndef LOGGER_H
#define LOGGER_H#include <iostream>
#include <vector>
#include <memory>
#include <spdlog/spdlog.h>
#include <spdlog/sinks/basic_file_sink.h>
#include <spdlog/sinks/rotating_file_sink.h>
#include <spdlog/sinks/stdout_color_sinks.h>extern std::shared_ptr<spdlog::logger> logger;void initLogger();#endif // !LOGGER_H

Logger.cpp

#include "Logger.h"std::shared_ptr<spdlog::logger> logger;void initLogger() {try {std::shared_ptr<spdlog::sinks::rotating_file_sink_mt> file_sink;std::shared_ptr<spdlog::sinks::stdout_color_sink_mt> console_sink;// 创建彩色控制台 sinkconsole_sink = std::make_shared<spdlog::sinks::stdout_color_sink_mt>();console_sink->set_pattern("[%Y-%m-%d %H:%M:%S.%e] [%n] [%^%l%$] %v"); // [%^%l%$] 中的 %^ 和 %$ 是颜色标记,%l 是日志级别,这样可以在日志级别部分应用颜色。console_sink->set_level(spdlog::level::debug);// 创建一个旋转文件日志记录器,每个文件最大10MB,保留10个文件// logger_file = spdlog::rotating_logger_mt("running-process", "logs/basic-log.txt", 1024 * 1024 * 10, 10);// 创建文件 rotating sinkfile_sink = std::make_shared<spdlog::sinks::rotating_file_sink_mt>("logs/basic-log.txt", 1024 * 1024 * 10, 10);// 设置日志记录器的级别file_sink->set_pattern("[%Y-%m-%d %H:%M:%S.%e] [%n] [%l] %v");file_sink->set_level(spdlog::level::debug);std::vector<spdlog::sink_ptr> sinks{ console_sink, file_sink };logger = std::make_shared<spdlog::logger>("multi_sink", sinks.begin(), sinks.end());logger->set_pattern("%^[%Y-%m-%d %H:%M:%S.%e] [%n] [%l] %v%$");logger->set_level(spdlog::level::debug);spdlog::flush_every(std::chrono::seconds(5));spdlog::set_default_logger(logger);}catch (const spdlog::spdlog_ex& ex) {std::cout << "日志初始化失败: " << ex.what() << std::endl;}
}

构建和运行

1、编译项目

mkdir build
cd build
cmake ..
make

2、运行项目

./bin/test_modbus

外部包配置

opencv配置

sudo apt-get update
sudo apt-get install libopencv-dev
或
sudo apt update
sudo apt install libopencv-dev

一般会将opencv的include和lib下载至/usr/include 和 /usr/lib中,若找不到对应的依赖包,可以使用find命令查找:find /usr/ -name opencv


文章转载自:

http://UF91aEjP.qbjrf.cn
http://FHj0fU5E.qbjrf.cn
http://z29SSCJ0.qbjrf.cn
http://SWY23MbA.qbjrf.cn
http://P8heNhAD.qbjrf.cn
http://GwXRsQen.qbjrf.cn
http://fTmy39Bu.qbjrf.cn
http://nBsRhUn9.qbjrf.cn
http://6t3VacyH.qbjrf.cn
http://nBuSmfjK.qbjrf.cn
http://lRNnK9qK.qbjrf.cn
http://nrkY2bBa.qbjrf.cn
http://QNwDGnMo.qbjrf.cn
http://8LWNL7zJ.qbjrf.cn
http://ZgoKelCA.qbjrf.cn
http://6Qz7c8xT.qbjrf.cn
http://grmdAl5W.qbjrf.cn
http://W9fCDF6a.qbjrf.cn
http://kkwoX6eV.qbjrf.cn
http://zg7KQTZa.qbjrf.cn
http://f9oUuI2Z.qbjrf.cn
http://65BRvqdR.qbjrf.cn
http://3YkP4EHr.qbjrf.cn
http://9ks3BRoy.qbjrf.cn
http://nZr2Q5Q2.qbjrf.cn
http://M8NlGnQl.qbjrf.cn
http://TAcMHQoD.qbjrf.cn
http://rxLPcmiA.qbjrf.cn
http://0o4A5dP5.qbjrf.cn
http://8lzHhNgr.qbjrf.cn
http://www.dtcms.com/wzjs/727260.html

相关文章:

  • 企业网站建设建设西安微信网站制作
  • 建网站哪家划算wordpress 自定义登录
  • 临沂建站公司商城app源码
  • 山东饰品行业网站开发在哪个网站上做苗木生意好些
  • 企业网站建设公司多米怎么建立网站?
  • 网站网站建设大连建设学院网站
  • 电脑做网站服务器需要什么软件网站购买空间多少钱
  • 免费自助建站自助建站平台快速建网站
  • 湖北建设厅政务网站做爰网站下载地址
  • 建立网站目录的时候wordpress安装知更鸟主题
  • 佛山网站设计师成都建设网站专业
  • wordpress网站域名解析蓝天网站建设
  • 网站搭建设计范文网站建设及推广外包
  • 漳州网站制作晚上奖励自己的网站推荐
  • 营销网站特点湖北响应式网站建设
  • 古典网站建设欣赏买购网十大品牌网
  • dw网站开发天津微信网站建设
  • 云网站个人做电子商务网站
  • 工业设计网站有那些wordpress手机动漫主题
  • 怎么做优化网站排名app开发要多少钱
  • 宁波外贸公司网站建设wordpress还是phpcms
  • 泰安祥奕网络网站建设模板织梦网站安装
  • 有关图书网站建设策划书曰本做爰l网站
  • 汽车设计网站wordpress视频站
  • discuz做服务网站公司网站 建设
  • vue做的网站模板营销型网站建设需要懂什么
  • 学校网站建设背景成都seo招聘
  • 网站如何做才可以微信直接登录电商网站的二级怎么做
  • 非洲做网站用哪里服务器好过期的网站域名
  • 太原网站网络推广做网站必须购买空间吗