我正在尝试将我的应用程序与在不同版本的 Visual Studio 中构建的静态库链接(我使用的是 VS2010,该库是用 VS2008 构建的)。静态库在内部使用 STL,我收到链接器错误,无法找到一些 basic_string 方法。
我知道如果静态库在其公共接口中使用 STL,那么这是不可能的,因为 STL 对象是二进制不兼容的。但这种情况并非如此。我调用的库中的所有方法都没有使用 STL,并且我没有将 STL 对象传递给库。但在内部,静态库在它自己的函数中使用 STL。
看起来库中没有编译 STL 代码,链接器正在尝试将 STL 链接到内部方法。我的问题是有什么方法可以编译静态库以静态链接到 STL 并在其中包含所有代码?
我应该提到我自己的应用程序也使用 STL。但似乎这两个版本都可以编译,前提是它们永远不会相互传递。