【问题标题】:How do I create a C++ library that can be used independently of its dependencies?如何创建可以独立于其依赖项使用的 C++ 库?
【发布时间】:2013-03-10 20:29:53
【问题描述】:

基本上,我编写了一个具有许多依赖项的 C++ 库。它们是:

  • 适用于 Windows 的 GNU 科学库
  • 闪烁
  • STD(std::vector,这甚至是依赖关系吗?)

我希望能够使用 Visual Studio 2010 从此代码生成一个库。我希望能够创建一个新的 Win32 控制台应用程序,引用该库并使用它。我不希望这个新的控制台应用程序也引用库的依赖项。

我不确定我所追求的是否可能。我应该创建动态库还是静态库?我应该如何链接到它?这些是我想到的子问题,但我认为我在这里错过了大局。

因此我的问题是:如何创建一个可以独立于其依赖项使用的 C++ 库?

【问题讨论】:

  • 如果想法是想出一个可以部署在任何 Windows 平台上的二进制文件,那么只需静态编译。不过,您仍然需要包含 mingw32.dll
  • 这或多或少是duplicate of this

标签: c++ visual-studio-2010 visual-c++ dll linker


【解决方案1】:

创建引用这些库的包装函数和类?此外,这些其他库必须是静态链接的,或者如果它们是动态链接的,则必须将 DLL 与您的应用程序一起部署!

如果一切都失败了,使用 UPX? :-) 创建单个二进制文件。

【讨论】:

  • 最后我决定使用 CMake 来为我处理配置任务。我误解了编译和链接在 C++ 环境中的工作方式,并提出了错误的问题。不过,我接受了您的回答,因为如果我能够更好地评估自己的情况,那将是正确的答案。谢谢:)
猜你喜欢
  • 2011-08-06
  • 1970-01-01
  • 1970-01-01
  • 2020-12-08
  • 1970-01-01
  • 2019-11-19
  • 2020-05-16
  • 2020-08-17
  • 2020-06-22
相关资源
最近更新 更多