CMakeLists格式。

# CMake版本信息
cmake_minimum_required(VERSION 3.4.1)

# 支持-std=gnu++11  可以不设置
set(CMAKE_VERBOSE_MAKEFILE on)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")



# 配置加载native依赖
include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/include)

# 添加待编译的文件 这里可以不加${CMAKE_SOURCE_DIR}/
 
add_library(native-lib SHARED  ${CMAKE_SOURCE_DIR}/src/main/cpp/interface.cpp
                            ${CMAKE_SOURCE_DIR}/src/main/cpp/msl.cpp
                            ${CMAKE_SOURCE_DIR}/src/main/cpp/native-lib.cpp)

# 动态方式加载
add_library(lib_one SHARED IMPORTED)
add_library(lib_two SHARED IMPORTED)


# 引入so文件  有些是放在libs目录下,修改路径即可
set_target_properties(lib_one PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI}/libTcpCommunication.so )
set_target_properties(lib_two PROPERTIES IMPORTED_LOCATION  ${CMAKE_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI}/libevent.so)


find_library( # Sets the name of the path variable.
              log-lib
              log )
#链接库    //找不到情况用这种格式${lib_one}
target_link_libraries(   native-lib
                         lib_one
                         lib_two
                         ${log-lib})
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用中的代码片段展示了如何在CMakeLists.txt文件中使用cmake链接protobuf库。首先需要使用`find_package(Protobuf REQUIRED "2.5.0")`来查找protobuf库,并通过判断`Protobuf_FOUND`来确定是否找到了该库。如果找到了protobuf库,可以通过`INCLUDE_DIRECTORIES(${PROTOBUF_INCLUDE_DIR})`将其包含到项目中。接下来,可以使用`add_library`来创建一个名为common1的库,并使用`link_directories(${PROTOBUF_LIBRARIES})`将protobuf库的路径包含进去。最后使用`target_link_libraries`来将common1库与protobuf库进行链接。需要注意的是`${PROTOBUF_LIBRARY_DEBUG}`代表的是libprotobuf.so,这个名字可能因编译器而异,所以需要根据实际情况进行确定。另外,可以使用cmake编译选项--trace-expand来帮助确定具体的编译选项。 关于协议缓冲区(Protobuf),引用介绍了它是Google开发的一种语言无关、平台无关的可扩展机制,用于序列化结构化数据。它可以将结构化数据转换为二进制格式,以便在不同平台和语言之间进行传输和存储。在cmake中使用protobuf时,需要按照上述代码片段添加对应的链接和包含路径,以确保正确使用protobuf库。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [【cmake】利用cmakeList链接protobuf](https://blog.csdn.net/bible_reader/article/details/105769931)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [Protocol-Buffer-Examples:带有CMake的Google协议缓冲区3.0初学者的C ++示例](https://download.csdn.net/download/weixin_42106357/19060524)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值