gpt4 book ai didi

c++ - 如何为 native C++ 创建 nuget 包

转载 作者:可可西里 更新时间:2023-11-01 16:48:32 27 4
gpt4 key购买 nike

我想发布关于 sdl_mixer 的包,它是一个本地包。我做了 tutorial说。我将.dll .h.lib文件放入包内容,但是最后的包裹没有用。那么创建 C++ nuget 包的正确方法是什么?

另一个问题:我发现在nuget中,大多数原生的c++包都是发布在两个包中的,例如:

sdl2_ttf.v140

sdl2_ttf.v140.redist

这两个文件有什么区别?我怎样才能像这样发布我的包?


更新:

我关注了 tutorial关于如何发布原生包。我写了下面的 autopkg 文件

 

nuget{
nuspec {
id = MySdl_mixer;
version :2.0.0.0;
title: sdl mixer;
authors: { Sam Lantinga, Stephane Peter, Ryan Gordon};
owners: {spartawhy117};
licenseUrl: "http://libsdl.org/license.php";
projectUrl: "http://libsdl.org/index.php";
iconUrl:"";
requireLicenseAcceptance:false;
summary:Nothing;
description: @"SDL_mixer is a sample multi-channel audio mixer library....
";
releaseNotes: "Release of C++ ";
copyright:Copyright 2015;
tags: {v140 ,sdl_mixer , native, CoApp };
};

files {
#defines {
Include = include\;
Bin = bin64\;
Lib = lib64\;
}

include:{"${Include}*"};

[x64,v140,debug,desktop]{
lib: ${Lib}SDL2_mixer.lib;
bin: ${Bin}SDL2_mixer.dll;
}
[x64,v140,release,desktop]{
lib: ${Lib}SDL2_mixer.lib;
bin: ${Bin}SDL2_mixer.dll;
}
};
targets {
Defines += HAS_SDLMIXER;
};
}

运行命令 Write-NuGetPackage .\sdl_mixer.autopkg 返回错误意外输入结束。这里有什么问题?

最佳答案

我四处搜索了几天,直到我发现互联网上真的没有任何帮助。我确实设法拼凑了如何去做,并通过反复试验使其运行良好。我在这里记录了:

https://digitalhouseblog.wordpress.com/2019/08/22/how-to-make-a-nuget-package-for-c/

不过我还是要总结一下:

  • 将您的本地库文件收集或暂存到您的文件夹中选择。
  • 在该文件夹中创建一个 *.nuspec 文件。
  • 编辑 *.nuspec 文件以包含您想要包含在包中的文件。
  • 创建一个 *.props 文件
  • 调用 nuget pack 来创建包。
  • 将 nuget 包推送到某处的提要。
  • 创建 packages.config 文件。
  • 编辑visual studio项目文件导入*.props文件

请注意,从未使用过 visual studio IDE 中的 nuget 工具。您必须手动执行很多操作。请参阅链接以获取完整的详细信息和解释。

关于c++ - 如何为 native C++ 创建 nuget 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38728583/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com