怎样做1个网站网站制作价格多少钱
- 作者: 五速梦信息网
- 时间: 2026年03月21日 06:45
当前位置: 首页 > 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不能识别其函数
- 上一篇: 怎样自己创造网站重庆公司注册费用是多少
- 下一篇: 怎样做百度口碑推广自己的网站广东网站建设公司
相关文章
-
怎样自己创造网站重庆公司注册费用是多少
怎样自己创造网站重庆公司注册费用是多少
- 技术栈
- 2026年03月21日
-
怎样自己创造网站推进门户网站建设工作会议
怎样自己创造网站推进门户网站建设工作会议
- 技术栈
- 2026年03月21日
-
怎样注册免费网站做茶叶网站的目的和规划
怎样注册免费网站做茶叶网站的目的和规划
- 技术栈
- 2026年03月21日
-
怎样做百度口碑推广自己的网站广东网站建设公司
怎样做百度口碑推广自己的网站广东网站建设公司
- 技术栈
- 2026年03月21日
-
怎样做地方门户网站男男床做视频网站
怎样做地方门户网站男男床做视频网站
- 技术栈
- 2026年03月21日
-
怎样做返利网站北京网站开发不限年龄
怎样做返利网站北京网站开发不限年龄
- 技术栈
- 2026年03月21日
