Win7 vs2015编译protobuf-3.0.0

需要工具:

1. visual studio 2015 

2. cmake

3.git[可选]


安装完毕,继续



从官网下载protobuf :https://github.com/google/protobuf/releases/tag/v3.0.0



window编译protobuf有两种方式:一个使用vs自带的msvc(环境测试vs开发者命令行工具),一种是用Cygwin 或者 MinGW。

此处使用msvc 进行编译。


使用vs开发者命令行工具,先测试cmake是否可用。


打开上图第一项,测试:



ok,接下来,解压protobuf压缩包,在和protobuf同级目录下新建一个install文件夹,用作编译完成后方include ,lib等文件。

如:

C:\Path\to\install


进入protobuf目录,创建build目录

     C:\Path\to\protobuf\cmake>mkdir build & cd build
     C:\Path\to\protobuf\cmake\build>


以下注意^和命令之间的空格

创建release版本的编译目录:

     C:\Path\to\protobuf\cmake\build>mkdir release & cd release
     C:\Path\to\protobuf\cmake\build\release>cmake -G "NMake Makefiles" ^
     -DCMAKE_BUILD_TYPE=Release ^
     -DCMAKE_INSTALL_PREFIX=../../../../install ^
     ../..

创建debug版本的编译目录:

     C:\Path\to\protobuf\cmake\build>mkdir debug & cd debug
     C:\Path\to\protobuf\cmake\build\debug>cmake -G "NMake Makefiles" ^
     -DCMAKE_BUILD_TYPE=Debug ^
     -DCMAKE_INSTALL_PREFIX=../../../../install ^
     ../..


创建生成visual stuido 工程的文件夹:

这一步需要注意的是,

"Visual Studio 14 2015 Win64"
是因为安装了visual studio 2015而决定的,这是所谓的generator,不同编译器是不同的,具体类型可见:<span style="white-space:pre">	http://www.cmake.org/cmake/help/latest/manual/cmake-generators.7.html#visual-studio-generators</span>

     C:\Path\to\protobuf\cmake\build>mkdir solution & cd solution
     C:\Path\to\protobuf\cmake\build\solution>cmake -G "Visual Studio 14 2015 Win64" ^
     -DCMAKE_INSTALL_PREFIX=../../../../install ^
     ../..

注意:这里用了Win64 那么生成的就是64位库,想要32位库就去掉Win64


以上3种不是必须都做。


通过以上3个步骤,可以见到在不同目录都生成了相应的makefile文件,接下来是执行nmake进行编译:

To compile protobuf:

     C:\Path\to\protobuf\cmake\build\release>nmake

or

     C:\Path\to\protobuf\cmake\build\debug>nmake


以下安装头文件、库文件等安装到之前制定的文件(install):

To install protobuf to the specified *install* folder:

     C:\Path\to\protobuf\cmake\build\release>nmake install

or

     C:\Path\to\protobuf\cmake\build\debug>nmake install


到此,release 和 debug版本都编译成功,vs可以使用了。

-----------------------------------------------------------------------------------------------------------------------------------------------------------------


vs平台开发用sln生成库要注意两点:

第一:

solution目录下有生成sln文件,可以用vs打开生成库,但要注意位数,比如如果


vs + qt (32位库)

那么,protobuf也应该改成win32平台,讲所有项目都改成win32平台的,




不然会出现: fatal error LNK1112: module machine type 'X86' conflicts with target machine type 'x64'

另外,32位编译器可以编译32和64位程序,这里选用win32



第二:


编译的库要和你使用的版本一致,如release debug,在下图的位置确定;



MD代表动态链接,MT代表静态链接,后面没有有d代表是release模式-》


release模式则用前两种。


同时,如果你在项目用到其他库,比如vs  + qt (32位动态链接库),那么protobuf也应该用动态链接方式生成lib,不然提示:

值“MT_StaticRelease”不匹配值“MD_DynamicRelease”

等这类错误。


动态链接方式:MD

静态链接方式:MT


总之,qt 库链接方式要和protobuf的一致,如果还用到其他的,全部都要一致。














(nanodet) C:\Users\gyf>pip install tensorboard==2.10 Looking in indexes: http://mirrors.aliyun.com/pypi/simple/ Collecting tensorboard==2.10 Downloading http://mirrors.aliyun.com/pypi/packages/6b/42/e271c40c84c250b52fa460fda970899407c837a2049c53969f37e404b1f6/tensorboard-2.10.0-py3-none-any.whl (5.9 MB) ---------------------------------------- 5.9/5.9 MB 5.1 MB/s eta 0:00:00 Collecting absl-py>=0.4 (from tensorboard==2.10) Downloading http://mirrors.aliyun.com/pypi/packages/8f/aa/ba0014cc4659328dc818a28827be78e6d97312ab0cb98105a770924dc11e/absl_py-2.3.1-py3-none-any.whl (135 kB) Collecting grpcio>=1.24.3 (from tensorboard==2.10) Downloading http://mirrors.aliyun.com/pypi/packages/87/7d/36009c38093e62969c708f20b86ab6761c2ba974b12ff10def6f397f24fa/grpcio-1.70.0-cp38-cp38-win_amd64.whl (4.3 MB) ---------------------------------------- 4.3/4.3 MB 5.8 MB/s eta 0:00:00 Collecting google-auth<3,>=1.6.3 (from tensorboard==2.10) Downloading http://mirrors.aliyun.com/pypi/packages/17/63/b19553b658a1692443c62bd07e5868adaa0ad746a0751ba62c59568cd45b/google_auth-2.40.3-py2.py3-none-any.whl (216 kB) Collecting google-auth-oauthlib<0.5,>=0.4.1 (from tensorboard==2.10) Downloading http://mirrors.aliyun.com/pypi/packages/b1/0e/0636cc1448a7abc444fb1b3a63655e294e0d2d49092dc3de05241be6d43c/google_auth_oauthlib-0.4.6-py2.py3-none-any.whl (18 kB) Collecting markdown>=2.6.8 (from tensorboard==2.10) Downloading http://mirrors.aliyun.com/pypi/packages/3f/08/83871f3c50fc983b88547c196d11cf8c3340e37c32d2e9d6152abe2c61f7/Markdown-3.7-py3-none-any.whl (106 kB) Requirement already satisfied: numpy>=1.12.0 in g:\.conda\envs\nanodet\lib\site-packages (from tensorboard==2.10) (1.24.3) Collecting protobuf<3.20,>=3.9.2 (from tensorboard==2.10) Downloading http://mirrors.aliyun.com/pypi/packages/fd/38/cb53f28950a386c8d7e17fc305c97a158cf85d51d7e6caffe4f37336c138/protobuf-3.19.6-cp38-cp38-win_amd64.whl (896 kB) ---------------------------------------- 896.1/896.1 kB 6.7 MB/s eta 0:00:00 Requirement already satisfied: requests<3,>=2.21.0 in g:\.conda\envs\nanodet\lib\site-packages (from tensorboard==2.10) (2.32.3) Requirement already satisfied: setuptools>=41.0.0 in g:\.conda\envs\nanodet\lib\site-packages (from tensorboard==2.10) (75.1.0) Collecting tensorboard-data-server<0.7.0,>=0.6.0 (from tensorboard==2.10) Downloading http://mirrors.aliyun.com/pypi/packages/74/69/5747a957f95e2e1d252ca41476ae40ce79d70d38151d2e494feb7722860c/tensorboard_data_server-0.6.1-py3-none-any.whl (2.4 kB) Collecting tensorboard-plugin-wit>=1.6.0 (from tensorboard==2.10) Downloading http://mirrors.aliyun.com/pypi/packages/e0/68/e8ecfac5dd594b676c23a7f07ea34c197d7d69b3313afdf8ac1b0a9905a2/tensorboard_plugin_wit-1.8.1-py3-none-any.whl (781 kB) ---------------------------------------- 781.3/781.3 kB 4.8 MB/s eta 0:00:00 Collecting werkzeug>=1.0.1 (from tensorboard==2.10) Downloading http://mirrors.aliyun.com/pypi/packages/6c/69/05837f91dfe42109203ffa3e488214ff86a6d68b2ed6c167da6cdc42349b/werkzeug-3.0.6-py3-none-any.whl (227 kB) Requirement already satisfied: wheel>=0.26 in g:\.conda\envs\nanodet\lib\site-packages (from tensorboard==2.10) (0.44.0) Collecting cachetools<6.0,>=2.0.0 (from google-auth<3,>=1.6.3->tensorboard==2.10) Downloading http://mirrors.aliyun.com/pypi/packages/72/76/20fa66124dbe6be5cafeb312ece67de6b61dd91a0247d1ea13db4ebb33c2/cachetools-5.5.2-py3-none-any.whl (10 kB) Collecting pyasn1-modules>=0.2.1 (from google-auth<3,>=1.6.3->tensorboard==2.10) Downloading http://mirrors.aliyun.com/pypi/packages/47/8d/d529b5d697919ba8c11ad626e835d4039be708a35b0d22de83a269a6682c/pyasn1_modules-0.4.2-py3-none-any.whl (181 kB) Collecting rsa<5,>=3.1.4 (from google-auth<3,>=1.6.3->tensorboard==2.10) Downloading http://mirrors.aliyun.com/pypi/packages/64/8d/0133e4eb4beed9e425d9a98ed6e081a55d195481b7632472be1af08d2f6b/rsa-4.9.1-py3-none-any.whl (34 kB) Collecting requests-oauthlib>=0.7.0 (from google-auth-oauthlib<0.5,>=0.4.1->tensorboard==2.10) Downloading http://mirrors.aliyun.com/pypi/packages/3b/5d/63d4ae3b9daea098d5d6f5da83984853c1bbacd5dc826764b249fe119d24/requests_oauthlib-2.0.0-py2.py3-none-any.whl (24 kB) Collecting importlib-metadata>=4.4 (from markdown>=2.6.8->tensorboard==2.10) Downloading http://mirrors.aliyun.com/pypi/packages/a0/d9/a1e041c5e7caa9a05c925f4bdbdfb7f006d1f74996af53467bc394c97be7/importlib_metadata-8.5.0-py3-none-any.whl (26 kB) Requirement already satisfied: charset-normalizer<4,>=2 in g:\.conda\envs\nanodet\lib\site-packages (from requests<3,>=2.21.0->tensorboard==2.10) (3.3.2) Requirement already satisfied: idna<4,>=2.5 in g:\.conda\envs\nanodet\lib\site-packages (from requests<3,>=2.21.0->tensorboard==2.10) (3.7) Requirement already satisfied: urllib3<3,>=1.21.1 in g:\.conda\envs\nanodet\lib\site-packages (from requests<3,>=2.21.0->tensorboard==2.10) (2.2.3) Requirement already satisfied: certifi>=2017.4.17 in g:\.conda\envs\nanodet\lib\site-packages (from requests<3,>=2.21.0->tensorboard==2.10) (2024.8.30) Collecting MarkupSafe>=2.1.1 (from werkzeug>=1.0.1->tensorboard==2.10) Downloading http://mirrors.aliyun.com/pypi/packages/92/21/357205f03514a49b293e214ac39de01fadd0970a6e05e4bf1ddd0ffd0881/MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl (17 kB) Collecting zipp>=3.20 (from importlib-metadata>=4.4->markdown>=2.6.8->tensorboard==2.10) Downloading http://mirrors.aliyun.com/pypi/packages/62/8b/5ba542fa83c90e09eac972fc9baca7a88e7e7ca4b221a89251954019308b/zipp-3.20.2-py3-none-any.whl (9.2 kB) Collecting pyasn1<0.7.0,>=0.6.1 (from pyasn1-modules>=0.2.1->google-auth<3,>=1.6.3->tensorboard==2.10) Downloading http://mirrors.aliyun.com/pypi/packages/c8/f1/d6a797abb14f6283c0ddff96bbdd46937f64122b8c925cab503dd37f8214/pyasn1-0.6.1-py3-none-any.whl (83 kB) Collecting oauthlib>=3.0.0 (from requests-oauthlib>=0.7.0->google-auth-oauthlib<0.5,>=0.4.1->tensorboard==2.10) Downloading http://mirrors.aliyun.com/pypi/packages/be/9c/92789c596b8df838baa98fa71844d84283302f7604ed565dafe5a6b5041a/oauthlib-3.3.1-py3-none-any.whl (160 kB) Installing collected packages: tensorboard-plugin-wit, zipp, tensorboard-data-server, pyasn1, protobuf, oauthlib, MarkupSafe, grpcio, cachetools, absl-py, werkzeug, rsa, requests-oauthlib, pyasn1-modules, importlib-metadata, markdown, google-auth, google-auth-oauthlib, tensorboard Successfully installed MarkupSafe-2.1.5 absl-py-2.3.1 cachetools-5.5.2 google-auth-2.40.3 google-auth-oauthlib-0.4.6 grpcio-1.70.0 importlib-metadata-8.5.0 markdown-3.7 oauthlib-3.3.1 protobuf-3.19.6 pyasn1-0.6.1 pyasn1-modules-0.4.2 requests-oauthlib-2.0.0 rsa-4.9.1 tensorboard-2.10.0 tensorboard-data-server-0.6.1 tensorboard-plugin-wit-1.8.1 werkzeug-3.0.6 zipp-3.20.2
最新发布
07-26
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值