演示下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
相关推荐
Android CMake调用第三方库,自定义StringUtil库,使用NDK-Build编译出各平台so文件。
零基础CMake入门:项目实战示例2:复杂项目,例源码
windows系统下,使用cmake, 基于Qt5.12.0 mingw 64位版本,编译Opencv3.4.11版本,生成Qt使用的第三方opencv库文件。详细讲述了从编译,以及编译中遇到的问题处理,以及Qt中使用第三方库的问题
CMake Protobuf 示例使用 CMake 通过 protobuf 管理 C++ 项目的最小示例。建造 $ mkdir build$ cd build$ cmake ..$ make跑步 $ ./main
1. 完整cmake示例,多晚文件管理 2. 演示如何生成动态库,以及如何使用动态库
VS2017+NCNN+protobuf成功编译: 用于部署cpu、gpu上的深度学习算法 ...基于NCNN框架:听说不依赖任何第三方库 详细编译过程可以参考我的专栏:https://blog.csdn.net/yohnyang/article/details/128384633
CMake Cookbook Building, testing, and packaging modular software with modern CMake Radovan Bast 2018
Cmake Error at builders/vpx.cmake:89 Cmake Error at builders/vpx.cmake:88 Cmake Error at builders/vpx.cmake:87 Cmake Error at builders/vpx.cmake:77 file not found WORK/desktop/cmake/windowsenv_libpath...
这是在ubuntu16.04系统下,用C++通过cmake构建qt5.12的工程模板。 自动根据.ui文件生成.h和cpp文件,利用qtcreator修改.ui文件后,无需其他设置,直接make可生成修改后的界面。 使用方法一:按照普通的cmake工程...
OpenSceneGraph 通过cmake编译第三方库
cmake构建sln及工程文件的简单示例。附原始工程文件和cmakelist.txt。示例中配置工程包含头文件源文件资源文件,及编译选项的方法。示例中只配置了release x64版本。未对复杂目录结构进行说明,有兴趣可参考官方文档...
protobuf2.6.1源码,加入了cmake支持,Linux下和Windows下都能构建,生成Debug/Release版本静态库,Debug版本带d作为后缀。
cmake创建多工程例子的简单例子
/cmake/.download/151805e03568c9f490a5e3a872777b75/vgg_generated_120.i] expected hash: [151805e03568c9f490a5e3a872777b75] actual hash: [d41d8cd98f00b204e9800998ecf8427e] status: [7;"Couldn't connect...
使用vscode cmake插件构建的CMake工程模板
CMake 构建系统和软件实施标准可以轻松创建协同工作的可共享软件和库。 这是通过组合和记录一些可用的最佳实践和实用程序来实现的。 更重要的是,BASIS 提供了一套完全集成的功能,使整个过程无缝! 查看网站了解更...
CMake Warning at cmake/OpenCVDownload.cmake:193 (message): FFMPEG: Download failed: 7;"Couldn't connect to server" For details please refer to the download log file: D:/study/opencv_with_contrib_...
里面含有 protobuf3.13.0 用cmake MSVC 编译的动态链接库。 里面有debug,release 32位和64位的 lib,dll,exe. 包含一个简单的序列化 反序列化的Qt demo。
osg-3rdparty-cmake, 概念创建用于生成OpenSceneGraph第三方库的脚本 osg-3rdparty-cmake概念创建用于生成OpenSceneGraph第三方库的脚本。这些脚本可以使用 CMake ( http://www.cmake.org/ ) build从源代码构建第三...
Probuf使用Cmake构建工程,需要下载CMAKE cmake下载地址:cmake地址(作者系统是win10-64位,所以下载 在线安装工具) Protobuf工程建立 1.将下载好的 protobuf-3.10.0.zip解压 2.安装cmake 3.打开cmake-gui.exe ...