cmake生成so包并调用(C++project,build,cmake)
生活随笔
收集整理的這篇文章主要介紹了
cmake生成so包并调用(C++project,build,cmake)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1. 目錄結(jié)構(gòu)
2 . downloads
2.1
build
module
process
CMakeLists.txt
====>
cmake_minimum_required(VERSION 3.5)if(CMAKE_COMPILER_IS_GNUCC)message("COMPILER IS GNUCC")ADD_DEFINITIONS ( -std=c++11 )
endif(CMAKE_COMPILER_IS_GNUCC)SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -ggdb3")
SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")ADD_SUBDIRECTORY(${CMAKE_SOURCE_DIR}/module)
ADD_SUBDIRECTORY(${CMAKE_SOURCE_DIR}/process)
2. 2 module
include/utikls.h
src/utils.cpp
CMakeLists.txt
====>
cmake_minimum_required(VERSION 3.5)project(module)if(CMAKE_COMPILER_IS_GNUCC)message("COMPILER IS GNUCC")ADD_DEFINITIONS ( -std=c++11 )
endif(CMAKE_COMPILER_IS_GNUCC)SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -ggdb3")
SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")
# 3. opencv
#link_directories("/usr/local/lib")
#include_directories("/usr/local/include/opencv4")# 5. 添加頭文件路徑
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/utils)
# 6. 添加源文件
FILE(GLOB_RECURSE SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)
message(${CMAKE_CURRENT_SOURCE_DIR})
message(${SOURCE_FILES})
# 7. 添加鏈接庫
#LINK_LIBRARIES(opencv_core opencv_highgui)# 9. 設(shè)置環(huán)境變量,編譯用到的源文件全部都要放到這里,否則編譯能夠通過,
#但是執(zhí)行的時候會出現(xiàn)各種問題,比如"symbol lookup error xxxxx , undefined symbol"
SET(ALL_SRCS ${SOURCE_FILES})
message(${ALL_SRCS})# 生成so包
ADD_LIBRARY(${PROJECT_NAME} SHARED ${ALL_SRCS})# 10.add executable file,添加要編譯的可執(zhí)行文件
#ADD_EXECUTABLE(${PROJECT_NAME} ${ALL_SRCS})
2. 3 process
include
src/main.cpp
CMakeLists.txt
====>
cmake_minimum_required(VERSION 3.5)project(hello)if(CMAKE_COMPILER_IS_GNUCC)message("COMPILER IS GNUCC")ADD_DEFINITIONS ( -std=c++11 )
endif(CMAKE_COMPILER_IS_GNUCC)#SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -ggdb3")
SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")# 5. 添加頭文件路徑
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
include_directories(${CMAKE_SOURCE_DIR}/module/include/utils)
# 6. 添加源文件
FILE(GLOB_RECURSE SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)
message(${CMAKE_CURRENT_SOURCE_DIR})
message(${SOURCE_FILES})
# 7. 添加鏈接庫LINK_DIRECTORIES(${CMAKE_BINARY_DIR}/module)
LINK_LIBRARIES(module)# 9. 設(shè)置環(huán)境變量,編譯用到的源文件全部都要放到這里,否則編譯能夠通過,
#但是執(zhí)行的時候會出現(xiàn)各種問題,比如"symbol lookup error xxxxx , undefined symbol"
SET(ALL_SRCS ${SOURCE_FILES})
message(${ALL_SRCS})# 10.add executable file,添加要編譯的可執(zhí)行文件
ADD_EXECUTABLE(${PROJECT_NAME} ${ALL_SRCS})# 不可以
#TARGET_LINK_LIBRARIES(${CMAKE_BINARY_DIR}/module/libmodule.so)
3. 編譯運行
總結(jié)
以上是生活随笔為你收集整理的cmake生成so包并调用(C++project,build,cmake)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从广州坐高铁到深圳要多少钱?多少时间
- 下一篇: 每一次想哭是什么歌?