我有一堆文件,这些文件被编译到链接到各种项目的库中,但是大多数项目只需要相对较小的一部分。所以我需要将它拆分为图层。
为了做到这一点,我想检查较低层不依赖于较高层中的任何东西。在Linux上,我只是简单地共享库并将-Wl,--no-undefined
传递给链接。但我需要在Windows上进行此操作,其中动态库需要显式导出,并且源代码没有为此做好准备。
我还可以为每个图层准备一个单元测试,并在链接期间弹出未定义的符号。但是我只对类的小子集进行了单元测试,即使我添加了它们,如果添加了一些但未经过测试,它们仍然无法捕获。
还有其他方法来检查静态库除了指定的其他库集之外不需要任何符号吗?我可以使用Visual C ++ 9.0(2008)或MinGW。
答案 0 :(得分:1)
#define DECLARE_OBJ( TYPE, INSTANCE_NAME ) \
extern "C" TYPE INSTANCE_NAME; \
__pragma( comment ( linker, "/INCLUDE:_" __STRINGIZE( INSTANCE_NAME ) ) )
这会发出关于两个编译时字符串之间的空格的警告。因为它完全没用,我把警告带走了。希望这会有所帮助。