[cmake]示例:构建引用了protobuf第三方库的工程

演示下cmake如何构建引用了第三方库的C++工程,这里第三方库已protobuf-lite为例。

 

1,我们用protobuf生成一个简单的c++代码,模版文件如下,test.proto:

package HProtocol;

option optimize_for = LITE_RUNTIME;

message add {
	required int32  val		= 1;
}

 

 

2,设置编译目录结构

由于引用了protobuf-lite第三方库,所以我们将编译好的protobuf-lite.lib与其头文件考过来,同时将生成的test.pb.h和test.pb.cc也搞过来。最终的工程目录结构如下:

cmake-protobuf

             |——build/                   #后面用于构建生成的编译目录

             |——include/

                       |——google/       #这里是protobuf的头文件

             |——lib/

                       |——libprotobuf-lite.lib

             |——src/

                       |——test.pb.h

                       |——test.pb.cc

             |——app.cpp

             |——CMakeLists.txt

 

 

3,编译测试代码,app.cpp:

#pragma once 

#include <google/protobuf/message_lite.h>
#include "test.pb.h"

int main(char** args, int size)
{
	HProtocol::add a;
	a.set_val(999);
	printf("%d", a.val());
	return 1;
}

 

 

4,编写CMakeLists.txt:

cmake_minimum_required(VERSION 3.5)

SET(PROJECT_ROOT_PATH ".")   
INCLUDE_DIRECTORIES("${PROJECT_ROOT_PATH}/include/")
INCLUDE_DIRECTORIES("${PROJECT_ROOT_PATH}/src/")

link_directories(./lib)

add_executable(app ${PROJECT_ROOT_PATH}/app.cpp ${PROJECT_ROOT_PATH}/src/test.pb.cc)
target_link_libraries(app libprotobuf-lite)

 

 

5,执行命令

cmake -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=Release ..
nmake

这里我拿的protobuf-lite.lib是release x64版本,所以运行命令时也需要在x64 nmake环境下,如何使用nmake的x64模式,见:http://aigo.iteye.com/blog/2294970

 

生成app.exe后运行之得到输出结果:

999

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值