fvisibility =隐藏但不隐藏完整的专用功能

时间:2014-12-09 11:28:36

标签: c++ gcc shared-libraries clang linkage

我编译了一个.hpp.cpp文件,编译器标志为-fvisibility=hidden,带有GCC / Clang 奇怪的是,尽管如此,我宣布-fvisibility=hidden,我的整个库中未使用的以下函数显示在我的共享对象文件中:

A.hpp

中的功能
double f();
template<typename T> T functionT();

A.cpp

中的功能
double f(){ /* some definition */ }   
template<> double functionT<double>(){ return f(); }

但是,如果我将完整的专用functionT声明为inline并将其移至头文件,则在共享对象文件.so中不再可见。

有人知道吗,我做错了什么?

0 个答案:

没有答案