怎样做1个网站网站制作价格多少钱

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

怎样做1个网站,网站制作价格多少钱,用jsp做留言板网站,公司起名字大全免费打分1.编译多个源程序时CMakeLists文件编写 1.若源程序目录结构如下#xff1a; main.cpp中include“LCD_2inch4.h”头文件#xff0c;而LCD_2inch4.h中include其它源程序#xff0c;则CmakeLists.txt文件可为如下#xff1a;

设置项目名称

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 把main.c中includeLCD_2inch4.h改为lcd2inch4.h新建一个lcd2inch4.h文件内容就是原来main.c调用的LCD_2inch4.h中的内容名字是否需要必须和库名字一样不清楚这里是一样的。将h文件 和so文件任意放在哪个位置只需在CMakeLists.txt中find_librarys时指定so库文件位置即可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不能识别其函数