aubo_C++_linux_SDK官方给的qmake工程,如何改为cmake工程

AUBO官方给的aubo_C++_linux_SDK是在qt下面的qmake实例工程,鉴于cmake比qmake的功能更多,将qmake工程的.pro文件改写为对应的CMakeLists.txt文件,实现SDK示例工程的cmake构建。

qmake工程的AuboInterfaceExample.pro文件如下

TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt

CONFIG += c++11

#********lib select **********************************
unix{
    #32bit OS
    contains(QT_ARCH, i386){

        CONFIG += c++11
        DEFINES += _GLIBCXX_USE_CXX11_ABI=0

        INCLUDEPATH += $$PWD/dependents/robotSDK/inc

        LIBS += $$PWD/dependents/protobuf/linux-x32/lib/libprotobuf.a

        LIBS += $$PWD/dependents/robotController/lib-linux32/libour_alg_i5p.a

        LIBS += -L$$PWD/dependents/log4cplus/linux_x32/lib -llog4cplus

        LIBS += -L$$PWD/dependents/robotSDK/lib/linux_x32/ -lauborobotcontroller

        LIBS += -lpthread

    }
    #64bit OS
    contains(QT_ARCH, x86_64){

        CONFIG += c++11

        INCLUDEPATH += $$PWD/dependents/robotSDK/inc

        LIBS += $$PWD/dependents/protobuf/linux-x64/lib/libprotobuf.a

        LIBS += $$PWD/dependents/robotController/lib-linux64/libour_alg_i5p.a

        LIBS += -L$$PWD/dependents/log4cplus/linux_x64/lib -llog4cplus

        LIBS += -L$$PWD/dependents/libconfig/linux_x64/lib/ -lconfig

        LIBS += -L$$PWD/dependents/robotSDK/lib/linux_x64/ -lauborobotcontroller

        LIBS += -lpthread
    }
}

#********SDK源码子工程*******************************
#include(../sdk-source/sdk.pri)


#SDK 使用示例
include(./example/example.pri)

SOURCES += main.cpp

其中的example.pri文件如下:

INCLUDEPATH += $$PWD
DEPENDPATH  += $$PWD

HEADERS += \
    $$PWD/example_0.h \
    $$PWD/example_1.h \
    $$PWD/example_3.h \
    $$PWD/example_4.h \
    $$PWD/example_5.h \
    $$PWD/example_6.h \
    $$PWD/example_8.h \
    $$PWD/example_9.h \
    $$PWD/util.h \
    $$PWD/example_toolio.h

SOURCES += \
    $$PWD/example_0.cpp \
    $$PWD/example_1.cpp \
    $$PWD/example_3.cpp \
    $$PWD/example_4.cpp \
    $$PWD/example_5.cpp \
    $$PWD/example_6.cpp \
    $$PWD/example_8.cpp \
    $$PWD/example_9.cpp \
    $$PWD/util.cpp \
    $$PWD/example_toolio.cpp

LIBS+=-lpthread

对应的CMakeLists.txt文件内容如下:

# CMake 最低版本号要求
cmake_minimum_required (VERSION 2.8)

# 项目名称
project (Demo)

# 使用C++11的标准进行编译
add_definitions(-std=c++11)

# 设置可执行文件生成路径
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/../bin)

# 生成debug版本
SET(CMAKE_BUILD_TYPE "Debug") 
SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb")
SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")

# 设置包含目录
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}/dependents/robotSDK/inc
${CMAKE_CURRENT_SOURCE_DIR}/example
)

# 设置链接库目录
link_directories(
    ${CMAKE_CURRENT_SOURCE_DIR}/dependents/protobuf/linux-x64/lib
    ${CMAKE_CURRENT_SOURCE_DIR}/dependents/robotController/lib-linux64
    ${CMAKE_CURRENT_SOURCE_DIR}/dependents/log4cplus/linux_x64/lib 
    ${CMAKE_CURRENT_SOURCE_DIR}/dependents/libconfig/linux_x64/lib 
    ${CMAKE_CURRENT_SOURCE_DIR}/dependents/robotSDK/lib/linux_x64 
)

# 搜索当前目录下的所有.cpp文件
aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/example SRC_LIST) 


#find_library( # Sets the name of the path variable.
#              log-lib
# 
#              # Specifies the name of the NDK library that
#              # you want CMake to locate.
#              libprotobuf.a
#              libour_alg_i5p.a
#              #-llog4cplus
#              liblog4cplus.so
#              #-lconfig
#              libconfig.a
#              #-lauborobotcontroller
#              libauborobotcontroller.a
#              pthread)

# 生成可执行文件
add_executable(demo main.cpp 
example/example_0.cpp
example/example_1.cpp
example/example_3.cpp
example/example_4.cpp
example/example_5.cpp
example/example_6.cpp
example/example_8.cpp
example/example_9.cpp
example/util.cpp
example/example_toolio.cpp
) 


# 链接库
target_link_libraries( # 目标库
                       demo
 
                       # 目标库需要链接的库
libauborobotcontroller.a
                       libprotobuf.a
                       libour_alg_i5p.a
                       liblog4cplus.so
                       libconfig.a
              
              pthread)





 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值