在Visual Studio中构建静态库时隐藏符号

时间:2016-12-15 21:25:46

标签: c visual-studio ide static-libraries

我正在寻找一种在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中设置这种类型的符号隐藏?我环顾四周并问过多位同事,但似乎没有人认为这是可能的。

0 个答案:

没有答案