CMakeLists.txt
2.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# cmake 最低版本要求 第三行名字不能动
cmake_minimum_required(VERSION 2.8)
project(JZ_)
set(CMAKE_C_FLAGS "-pthread -std=gnu99 -lm -ldl -lstdc++")
set(CMAKE_CXX_FLAGS "-pthread -lm -ldl -lstdc++")
#"-pthread":指定在编译时链接POSIX线程库,以支持多线程程序。
#"-std=gnu99":指定C语言标准为GNU C99(也就是C99加上GNU的扩展特性),该标准对于一些特性和库的使用是必须的。
#"-lm":指定在编译时链接数学库,以使用一些数学函数。
#"-ldl":指定在编译时链接动态库加载库,以使用动态加载。
#"-lstdc++":指定在编译时链接C++标准库,以使用C++的一些特性和函数。
set(CMAKE_C_COMPILER "/usr/local/arm/4.9.3/bin/arm-cortexa9-linux-gnueabihf-gcc")
set(CMAKE_CXX_COMPILER "/usr/local/arm/4.9.3/bin/arm-cortexa9-linux-gnueabihf-g++")
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(ROOT_DIRS "${CMAKE_CURRENT_LIST_DIR}/../")
file(GLOB_RECURSE APP_SRC ${CMAKE_CURRENT_LIST_DIR}/application/*.cxx)
#.h文件
include_directories(${ROOT_DIRS}include)
include_directories(${ROOT_DIRS}example)
include_directories(${ROOT_DIRS}/../../../../JZsdk_Config)
# 添加链接库目录
link_directories(${ROOT_DIRS}lib)
# 工程输出目录
if (NOT EXECUTABLE_OUTPUT_PATH)
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR})
endif ()
#到最顶路径
#可执行文件
add_executable(
${PROJECT_NAME}
${APP_SRC}
)
# 库文件路径
target_link_libraries(${PROJECT_NAME}
${ROOT_DIRS}lib/libpayloadSDK.so
${ROOT_DIRS}lib/libautelcore.so.0
${ROOT_DIRS}lib/libmodules.so.0
${ROOT_DIRS}lib/libAutelPBProto.so.2
${ROOT_DIRS}lib/libAutelPBProtocol.so.2
${ROOT_DIRS}lib/libyaml-cpp.so.0.7
${ROOT_DIRS}lib/libprotobuf-lite.so.32
${ROOT_DIRS}lib/libprotobuf.so.32
${ROOT_DIRS}lib/libprotoc.so.32
${ROOT_DIRS}lib/libuv.so.1
#${ROOT_DIRS}lib/liblamp.so
# payloadSDK
# autelcore
# AutelPBProto
# AutelPBProtocol
# yaml-cpp
# protobuf
# protobuf-lite
# uv
)
# 设置编译器优化级别
set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "-O3 -DNDEBUG")