CMakeLists.txt 2.1 KB
# 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")