将对象(例如 STL 对象)传入和传出静态库是否安全?
Is it safe to pass objects, such as STL objects, to and from a static library?
我知道传递对象 to/from DLL 可能不安全,但我不确定静态库是否也是如此。
将对象(例如 STL 对象)传入和传出静态库是否安全?
最好是。静态库本质上只是一堆编译后的目标文件混合在一起并建立索引以简化 linking;如果将 STL 对象传递给静态库不安全,那么在单独的 .cpp
文件中定义的函数之间传递它们根本就不安全。
显然,您需要确保静态库是使用与您最终编译的 ABI 相同的 ABI 的编译器编译的,link 您自己的代码,但是 linking 随动态 linkage.
发生的不同运行时库
我知道传递对象 to/from DLL 可能不安全,但我不确定静态库是否也是如此。
将对象(例如 STL 对象)传入和传出静态库是否安全?
最好是。静态库本质上只是一堆编译后的目标文件混合在一起并建立索引以简化 linking;如果将 STL 对象传递给静态库不安全,那么在单独的 .cpp
文件中定义的函数之间传递它们根本就不安全。
显然,您需要确保静态库是使用与您最终编译的 ABI 相同的 ABI 的编译器编译的,link 您自己的代码,但是 linking 随动态 linkage.
发生的不同运行时库