ano*_*non 6 c++ dll wrapper static-libraries static-linking
我有一个 C++ 解决方案,其中包含一个可执行项目和一个静态库。静态库是可执行项目的引用。
静态库需要外部依赖。我想在单独的解决方案中为外部依赖项创建一个包装器,这样我就不必将依赖项带入我的可执行文件中。
我的静态库可以知道我的包装器,但不知道外部依赖项。我想使用我的包装器为我的静态库提供一个接口到外部依赖项,而不需要它知道除了包装器之外的任何东西。
我将包装器制作为 DLL 和静态库,但我无法将它链接到我的静态库中,因为 Visual Studio 中没有链接选项。此外,DLL 包装器没有创建配套的 .lib。
我的问题:我应该在我的包装器上使用什么样的链接来为我的静态库提供一个接口以使用外部依赖项,而不知道外部依赖项,只知道包装器?以及如何在我的包装器中包装所有依赖项功能,以便我的静态库除了我的包装器之外不需要任何其他 dll 或库?
我遇到的主要问题是从我的静态库中添加对包装器的引用。看来我只能在它们处于相同的解决方案中时才能做到这一点。但是,如果它们在同一个解决方案中,那么该解决方案(和我的可执行文件)就会被外部依赖项污染。我宁愿只包含一个文件(dll/lib),它从外部依赖中挑选出我需要的功能,而不是不必要地包含整个外部依赖。
我知道如何创建 dll 和库(https://msdn.microsoft.com/en-us/library/ms235636.aspx和https://msdn.microsoft.com/en-us/library/ms235627.aspx)和还有加载它们的方法(https://msdn.microsoft.com/en-us/library/windows/desktop/ms684175%28v=vs.85%29.aspx和https://msdn.microsoft.com/en-我们/图书馆/7f0aews7.aspx)。我的问题更侧重于如何将东西包装在 dll(或 lib)中,同时只给出一个 dll(或 lib),而不是我的 dll/lib 需要运行的每个 dll 和/或 lib,并且,在我的案例,如何将该 dll/lib 链接到静态库。
我在使用 gcc 编译的 Windows 环境中。
| 归档时间: |
|
| 查看次数: |
303 次 |
| 最近记录: |