以protobuf为例介绍下我在项目中怎么生成对平台的库 直至能使用的过程:
protobuf是google出的一个结构化数据传递的工具,用于传递自定的strcut xxx {}内容。
可用于在一个机器上的进程间,两台设备各自的进程间,等等。
1.windows
windows系统上把c/c++源码编译成dll 可以使用VS 也可以使用gcc
使用VS有两个门槛:
1.界面话的VS运行源码仍需要配置各种头文件
2.要求制作者对VS的操作要熟悉
使用gcc:
gcc:GNU编译器套件(GNU Compiler Collection),目前可以使用GCC在Linux、BSD、Mac OS X windows的系统上
编译c/c++,Fortran、Pascal、Objective-C、Java、Ada、Go, 汇编等语言
windows上使用GCC可以借助MinGW
1.下载安装MinGW http://blog.sina.com.cn/s/blog_637ed3bc01017hfi.html
2.gcc编译dll http://blog.csdn.net/denglei265/article/details/3889470
1.首先介绍下MinGW
MinGW是指只用自由软件来生成纯粹的Win32可执行文件的编译环境,它是Minimalist GNU on Windows的略称。
实际上 MinGW 并不是一个 单纯的C/C++ 编译器,而是一套 GNU 工具集合。
开发 MinGW 是为了那些不喜欢工作在 Linux(FreeBSD) 操作系统而留在 Windows 的人提供一套符合 GNU 的 GNU 工作环境。
所以,使用 MinGW 我们就可以像在 Linux 下一样使用 GNU 程序开发工具。
GCC 就是 MinGW 的核心所在,GCC 是一套支持众多计算机程序语言的编译系统,而且在语言标准的实现上是最接近于标准的。
并且 GCC 几乎可以移植到目前所有可用的计算机平台。
GCC 本身不像 VC 那样拥有IDE 界面(在 Windows 上也存在 Dev C++ 之类的支持 MinGW 编译器的 IDE)。
源代码编辑你可以选用任何你喜欢的文本编辑器。然后使用 make 等工具来进行软件项目的编译、链接、打包乃至发布。
2.搜索下载MinGW
3.环境变量的配置
在(系统属性-->高级-->环境变量-->系统变量 中)(以下目录都根据自己的电脑MinGW所在位置不同而改变)
a.在PATH的值中加入“C:\Program Files\MinGWStudio\MinGW\bin”。这是寻找gcc编译器的路径。如果PATH中还有其他内容,需要用英文状态下分号进行分割
b.新建LIBRARY_PATH变量,在其值中加入“C:\Program Files\MinGWStudio\MinGW\lib”。这是标准库存放的路径。
c.新建C_INCLUDE_PATH变量,在其值中加入“C:\Program Files\MinGWStudio\MinGW\include”。这是Include查找头文件的路径。
4.验证gcc是否正常运行
在cmd控制台窗口下面,输入gcc -v。若已经成功安装好,会显示gcc的版本信息。
gcc编译dll的例子
假设共有三个文件:print.h,print.c,test.c
编译动态dll库:
gcc -Wall -shared print.c -o print.dll
或者
gcc –share print.c -o print.dll
调用dll库生成exe文件:
gcc test.c print.dll -o test
编译静态库,可供windows调用:
1、gcc -shared -o print.dll print.c -Wl,–output-def,print.def,–out-implib,libprint.a
2、lib /machine:i386 /def:print.def