NuGet打包C++库文件结构示例


1.说明

  准备对C++开发的程序,用nuget来进行包管理,所以对nuget打包研究了下,

  下面先看几个例子,重点关注目录结构和targets文件

2.例子

  1.boost.1.79.0.nupkg,只包含了boost的头文件,带lib的在其他的包里.

  2.boost_bzip2-vc143.1.79.0.nupkg,这个是带了boost_bzip的lib,dll和debug的pdb文件

  3.sw.sqlite3.v143.3.34.1.nupkg,这个是我自己打包的一个.再没有加lib文件夹,将所有的文件都放在了build/native文件夹下.

   4.sqlite-v1.43.1.0.0.nupkg,这个是用vcpkg打包成nuget,额外添加了些vcpkg的信息,install目录保持跟vcpkg编译完的结构

3 结论:

  从以上几个例子可以看出,build/native/*.targers这个目录结构和文件是必须的,其他的include,bin,lib等文件夹,可以按照自己的方式组织,重点就是要在targets文件中定义好,哪些是include的,那些是lib等等,需要使用相对路径.