我正在寻找一种在Visual Studio中构建的静态库中隐藏符号的方法。我已经能够在clang和gcc中做到这一点,但我不确定是否有办法在VS中进行。
我正在构建一个静态库 parentlib ,需要在Linux(使用gcc),OSX(使用clang)和Windows(使用visual studio编译器)上构建。该库使用了3个其他库: childliba,childlibb,childlibc 。
我有 parentlib 的API,我只希望在库中公开与API相关的符号。例如,如果某人运行nm parentlib
,则他们将看不到 childlib(abc)中的任何符号
使用clang / gcc构建库时,我这样做的方法是:
clang -exported-symbols-list <text_file_with_parentlib_api_symbols> ...
gcc --globalize-symbols=<text_file_with_parentlib_api_symbols> ...
现在,任何未在文本文件中列出的符号都不会在结果库中变为全局。
有没有办法在Visual Studio中设置这种类型的符号隐藏?我环顾四周并问过多位同事,但似乎没有人认为这是可能的。