我有一个动态库,它在构建中包含glew.c,并且使用GLEW_STATIC构建。如果另一个库被链接到相同的应用程序中,并且还以某种方式包含GLEW,那么是否有可能由于one definition规则而导致Linux上出现问题?
发布于 2018-07-17 23:18:37
只要您不导出任何符号就可以了。所有GLEW符号都应该有“隐藏”属性。这可以通过在编译时使用-fvisibilty=hidden将默认可见性设置为“隐藏”来实现。可以使用__attribute__ ((visibility ("default")))显式导出要导出的符号。
老实说,我不能将这种行为与ODR协调一致。我要谨慎地说,ODR没有考虑到符号可见性。
https://stackoverflow.com/questions/51384677
复制相似问题