GCC相当于/ INCLUDE Visual Studio选项

时间:2015-06-30 01:17:36

标签: c++ visual-studio gcc options equivalent

在Visual Studio中,我可以使用/INCLUDE (Force Symbol References)链接器选项从dll导出特定符号。海湾合作委员会是否有同等选择权?

我使用-fvisibility = hidden进行编译,因此默认情况下不会导出符号。

2 个答案:

答案 0 :(得分:1)

一种方法是使用__attribute__

void foo() __attribute__((visibility("default")));

void foo() {
  /* Implementation */
}

这应该仅覆盖此功能的-fvisibility=hidden参数。你也可以这样做:

class __attribute__((visibility("default"))) my_class {
  public:
    myClass();
    ~myClass();

    // Other declarations...
};

这会导出整个类及其中包含的所有声明。

答案 1 :(得分:1)

虽然符号可见性可能起作用,但问题的答案却不尽如人意。它不是链接器选项,需要源修改,这可能是不合需要的。或多或少等效的是导出映射,但它仅适用于具有GNU链接器的GCC。 GCC命令行选项是

 -Wl,--version-script=a.map
带有a.map的

看起来像

 {
     global: a;
     local: *;
 }

http://www.akkadia.org/drepper/dsohowto.pdf

的更多信息