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

礼品网站商城怎么做我的百度账号

礼品网站商城怎么做,我的百度账号,上海有哪些互联网大厂,商场商城网站建设方案1.编译多个源程序时CMakeLists文件编写 1.若源程序目录结构如下: main.cpp中include“LCD_2inch4.h”头文件,而LCD_2inch4.h中include其它源程序,则CmakeLists.txt文件可为如下: # 设置项目名称 cmake_minimum_required(VERSI…

1.编译多个源程序时CMakeLists文件编写

1.若源程序目录结构如下:

在这里插入图片描述

main.cpp中include“LCD_2inch4.h”头文件,而LCD_2inch4.h中include其它源程序,则CmakeLists.txt文件可为如下:
# 设置项目名称  
cmake_minimum_required(VERSION 3.10) # 确保CMake版本足够新  
project(MyProject)  set(CMAKE_SYSTEM_NAME Linux)
#set(CMAKE_SYSTEM_PROCESSOR arm)set(tools /home/tao/linux/milkv-duo256/host-tools/gcc/riscv64-linux-musl-x86_64)#set(CMAKE_SYSROOT ${tools}/sysroot)
set(CMAKE_C_COMPILER ${tools}/bin/riscv64-unknown-linux-musl-gcc)
set(CMAKE_CXX_COMPILER ${tools}/bin/riscv64-unknown-linux-musl-g++)
set(CMAKE_AR ${tools}/bin/riscv64-unknown-linux-musl-ar)
set(CMAKE_RANLIB ${tools}/bin/riscv64-unknown-linux-musl-ranlib)# 定义目录变量  
set(DIR_Config   "${CMAKE_SOURCE_DIR}/lib/Config")  
set(DIR_EPD      "${CMAKE_SOURCE_DIR}/lib/LCD")  
set(DIR_FONTS    "${CMAKE_SOURCE_DIR}/lib/Fonts")  
set(DIR_GUI      "${CMAKE_SOURCE_DIR}/lib/GUI")  
set(DIR_Examples "${CMAKE_SOURCE_DIR}/examples")  
set(DIR_wiringx "/home/tao/linux/milkv-duo256/duo-examples/duo-sdk/rootfs/usr")
set(DIR_BIN      "${CMAKE_SOURCE_DIR}/bin")  
#wiringx是main.cpp中include的其他头文件# 设置编译选项  
set(CMAKE_CXX_STANDARD 11) # 假设您使用C++ (如果是C,请使用CMAKE_C_STANDARD)  
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0 -Wall")  # 定义USELIB变量并基于它决定是否链接库  这部分if判断可省去
set(USELIB "USE_DEV_LIB")  
if("${USELIB}" STREQUAL "USE_DEV_LIB")  set(LIBS pthread m)  
else()  set(LIBS "")  
endif()  # 添加包含目录  ,即头文件所在目录
include_directories(  ${DIR_Config}  ${DIR_EPD}  ${DIR_GUI}  ${DIR_FONTS}  ${DIR_Examples}  "${DIR_wiringx}/include"
)  # 添加源文件并设置目标  ,有源程序的文件夹
file(GLOB_RECURSE SRC_LIST  "${DIR_EPD}/*.c"  "${DIR_Config}/*.c"  "${DIR_GUI}/*.c"  "${DIR_Examples}/*.cpp"  "${DIR_FONTS}/*.c"  
)  #for opencv ,main中使用了opencv,不使用则可以不加
set(OpenCV_DIR "/home/tao/linux/milkv-duo256/duo-examples/opencv-mobile-milkv/opencv-mobile-4.9.0-milkv-duo/lib/cmake/opencv4")
find_package(OpenCV REQUIRED)
#添加opencv头文件
include_directories(${OpenCV_INCLUDE_DIRS})#指定由源程序生成可执行程序main,可换为其它名字
add_executable(main ${SRC_LIST})  # 查找库文件,指定搜索路径 ,添加第三方库时使用fnd_library,命令,之后 arget_link_libraries命令添加库
find_library(MY_LIB NAMES wiringx PATHS /home/tao/linux/milkv-duo256/duo-examples/duo-sdk/rootfs/usr/lib NO_DEFAULT_PATH)  # 如果USELIB是USE_DEV_LIB,则链接pthread和m库  
if("${USELIB}" STREQUAL "USE_DEV_LIB")  target_link_libraries(main ${LIBS} ${MY_LIB} ${OpenCV_LIBS} )  
endif()  # 设置输出目录为DIR_BIN(注意:CMake默认使用build目录,但可以通过设置CMAKE_ARCHIVE_OUTPUT_DIRECTORY等变量来改变)  
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${DIR_BIN})  
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${DIR_BIN})  
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${DIR_BIN})  # 清理规则(CMake不直接支持Makefile的clean目标,但可以使用make clean或自定义命令)  
# 在CMake中,通常使用`cmake --build . --target clean`来清理,这需要在项目根目录的CMakeLists.txt中定义clean目标  
# 这里为了简单起见,我们不定义clean目标  # 如果需要交叉编译,可以设置工具链文件或使用CMAKE_TOOLCHAIN_FILE变量  
# 例如:set(CMAKE_TOOLCHAIN_FILE "path/to/toolchain.cmake")  
# 注意:这需要在您的toolchain.cmake文件中定义交叉编译器的路径和其他相关设置  # 如果您使用的是C而不是C++,请将add_executable替换为add_executable并相应地更改变量名(例如CMAKE_C_FLAGS)
之后在bin目录中cmake … && make命令编译

2.将一些驱动源程序生成动态库so,方便调用

1.main.c每次调用LCD_2inch4.h中的函数需要一起编译这四个源程序文件夹,太麻烦,可将LCD的程序生成so动态链接库,CMakeLists.txt如下:
# 设置项目名称  
cmake_minimum_required(VERSION 3.10) # 确保CMake版本足够新  
project(MyProject)  set(CMAKE_SYSTEM_NAME Linux)
#指定编译器
set(tools /home/tao/linux/milkv-duo256/host-tools/gcc/riscv64-linux-musl-x86_64)set(CMAKE_C_COMPILER ${tools}/bin/riscv64-unknown-linux-musl-gcc)
set(CMAKE_CXX_COMPILER ${tools}/bin/riscv64-unknown-linux-musl-g++)
set(CMAKE_AR ${tools}/bin/riscv64-unknown-linux-musl-ar)
set(CMAKE_RANLIB ${tools}/bin/riscv64-unknown-linux-musl-ranlib)# 定义目录变量  ,wiringx是调用外部的库,bin是指定生成的结果文件存放的地方
set(DIR_Config   "${CMAKE_SOURCE_DIR}/lib/Config")  
set(DIR_EPD      "${CMAKE_SOURCE_DIR}/lib/LCD")  
set(DIR_FONTS    "${CMAKE_SOURCE_DIR}/lib/Fonts")  
set(DIR_GUI      "${CMAKE_SOURCE_DIR}/lib/GUI")   
set(DIR_wiringx "/home/tao/linux/milkv-duo256/duo-examples/duo-sdk/rootfs/usr")
set(DIR_BIN      "${CMAKE_SOURCE_DIR}/bin")  # 设置编译选项  
set(CMAKE_CXX_STANDARD 11) # 假设您使用C++ (如果是C,请使用CMAKE_C_STANDARD)  
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0 -Wall")  
set(LIBS pthread m)  
# 添加包含目录  
include_directories(  ${DIR_Config}  ${DIR_EPD}  ${DIR_GUI}  ${DIR_FONTS}  "${DIR_wiringx}/include"
)  
# 添加源文件并设置目标  
file(GLOB_RECURSE SRC_LIST  "${DIR_EPD}/*.c"  "${DIR_Config}/*.c"  "${DIR_GUI}/*.c"   "${DIR_FONTS}/*.c"  
)  # 查找库文件,指定搜索路径  
find_library(MY_LIB NAMES wiringx PATHS /home/tao/linux/milkv-duo256/duo-examples/duo-sdk/rootfs/usr/lib NO_DEFAULT_PATH)  
#指定库名为lcd2in4,生成的文件叫做liblcd2in4.so
add_library(lcd2in4 SHARED ${SRC_LIST})target_link_libraries(lcd2in4 ${LIB} ${MY_LIB})  #添加需要使用的库# 设置输出目录为DIR_BIN(注意:CMake默认使用build目录,但可以通过设置CMAKE_ARCHIVE_OUTPUT_DIRECTORY等变量来改变)  
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${DIR_BIN})  
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${DIR_BIN})  
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${DIR_BIN})  
在bin目录使用cmake … && make即可生成库liblcd2inch4.so
  1. 把main.c中include""LCD_2inch4.h"改为lcd2inch4.h
  2. 新建一个lcd2inch4.h文件,内容就是原来main.c调用的LCD_2inch4.h中的内容,名字是否需要必须和库名字一样不清楚,这里是一样的。
  3. 将h文件 和so文件任意放在哪个位置,只需在CMakeLists.txt中find_librarys时指定so库文件位置即可
  4. 在这里插入图片描述
  5. CMakeLists.txt可为下:
# 设置项目名称  
cmake_minimum_required(VERSION 3.10) # 确保CMake版本足够新  
project(MyProject)  set(CMAKE_SYSTEM_NAME Linux)
#set(CMAKE_SYSTEM_PROCESSOR arm)set(tools /home/tao/linux/milkv-duo256/host-tools/gcc/riscv64-linux-musl-x86_64)#set(CMAKE_SYSROOT ${tools}/sysroot)
set(CMAKE_C_COMPILER ${tools}/bin/riscv64-unknown-linux-musl-gcc)
set(CMAKE_CXX_COMPILER ${tools}/bin/riscv64-unknown-linux-musl-g++)
set(CMAKE_AR ${tools}/bin/riscv64-unknown-linux-musl-ar)
set(CMAKE_RANLIB ${tools}/bin/riscv64-unknown-linux-musl-ranlib)# 定义目录变量  
set(DIR_Examples "${CMAKE_SOURCE_DIR}/examples")  
set(DIR_wiringx "/home/tao/linux/milkv-duo256/duo-examples/duo-sdk/rootfs/usr")
set(DIR_BIN      "${CMAKE_SOURCE_DIR}/bin")  # 设置编译选项  
set(CMAKE_CXX_STANDARD 11) # 假设您使用C++ (如果是C,请使用CMAKE_C_STANDARD)  
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0 -Wall")  set(LIBS pthread m)  # 添加包含目录  
include_directories(  ${DIR_Examples}  "${DIR_wiringx}/include"
)  # 添加源文件并设置目标  
file(GLOB_RECURSE SRC_LIST  "${DIR_Examples}/*.cpp"   
)  
#for opencv,不使用则不添加
set(OpenCV_DIR "/home/tao/linux/milkv-duo256/duo-examples/opencv-mobile-milkv/opencv-mobile-4.9.0-milkv-duo/lib/cmake/opencv4")
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})add_executable(main ${SRC_LIST})  # 查找库文件,指定搜索路径  
find_library(MY_LIB NAMES wiringx PATHS /home/tao/linux/milkv-duo256/duo-examples/duo-sdk/rootfs/usr/lib NO_DEFAULT_PATH)  find_library(LCD_LIB NAMES lcd2in4 PATHS  ${DIR_Examples}  NO_DEFAULT_PATH) target_link_libraries(main ${LIBS} ${MY_LIB} ${OpenCV_LIBS} ${LCD_LIB})  # 设置输出目录为DIR_BIN(注意:CMake默认使用build目录,但可以通过设置CMAKE_ARCHIVE_OUTPUT_DIRECTORY等变量来改变)  
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${DIR_BIN})  
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${DIR_BIN})  
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${DIR_BIN})  

3.若cpp文件中include 其他头文件,但其他头文件对应源程序为c程序实现的,则使用extern "C"告诉编译器这些函数签名用c语言的函数签名。否则cpp不能识别其函数

在这里插入图片描述

http://www.yidumall.com/news/71601.html

相关文章:

  • 武汉影楼网站建设济南百度推广优化
  • 做app网站公司名称精准引流推广团队
  • 杭州公司注册代理中介汕头seo优化公司
  • 静安网站建设营销推广活动策划方案
  • 宁阳网站建设南宁网站制作
  • 成都网站建设网完善的seo网站
  • 网站怎么做彩页英文seo
  • 上海网站建设的企网络外包
  • 黄骅港招聘贴吧最新招聘衡阳网站优化公司
  • 广州网站建设网站托管运营注册自己的网站
  • 没网站域名可以做备案吗做seo必须有网站吗
  • 自己做网站用什么软件注册域名在哪里注册
  • 江苏缘生源建设工程有限公司网站网络营销教案ppt
  • 网站怎么做平台珠海seo排名收费
  • 泉州学校网站开发百度账号24小时人工电话
  • 医疗网站建设管理护肤品软文推广
  • 网站怎么做网站地图优化关键词排名的工具
  • uc官网网站开发者中心产品网站推广
  • 江门市新会区网络优化需要哪些知识
  • 制作asp动态网站开发建立网站的软件
  • 上海网站建设集中线上推广哪个平台最好
  • 营销网站功能百度的合作网站有哪些
  • 查营业执照怎么查询seo是什么意思为什么要做seo
  • 免费推广的软件百度快照怎么优化排名
  • 药企做网站需要哪些手续网络推广计划书范文
  • 网站双线选择长沙网站seo技术厂家
  • 今日中央新闻杭州哪家seo公司好
  • 雄安网站建设需要多少钱个人网页设计
  • 成都园林景观设计公司排名站长网站优化公司
  • 邯郸网站建设哪家好软广告经典例子