2011-06-06 33 views
1

我在应用程序中使用的两个库都使用zlib,这会在链接我的项目时导致冲突。我想在没有zlib的情况下编译这些库;我想在我自己的项目中静态链接zlib库,并让这些库使用它。我怎样才能做到这一点?编译具有外部依赖项的库

回答

1

如果两个库都静态链接到可执行文件,并且zlib也静态链接到可执行文件,那么只需构建两个库,而不将它们链接到zlib,并在构建可执行文件时将zlib添加到链接程序依赖项。

如果两个库都是DLL,那么您需要检查为什么要从它们导出zlib符号 - 通常您应该能够将两个DLL链接到一个可执行文件,这两个DLL使用重叠的依赖关系并且不会遇到问题来自重叠的依赖关系。

+0

我的意思是,我应该在库的项目文件中更改哪些选项,以便它们在没有zlib的情况下编译。 – 2011-06-06 20:35:37

+1

假设C++(因为您没有声明语言),那么在构建库时,您将在包含路径中包含zlib,但不会将zlib.lib置于链接器依赖项中。如果您正在使用项目依赖项(同样,假设您正在构建静态库),请从项目依赖项中移除zlib,但将zlib的路径包含在编译器的包含路径中。 – 2011-06-06 20:52:33

相关问题