繁体   English   中英

OSX C ++导出功能

[英]OSX C++ Export function

我得到了一个在OSX上使用makefile的大型C ++项目。 我只是想添加一个我可以解析的可以调用的导出函数。 该项目必须是可执行的,而不是库。 它已经导出了很多函数,但是我无法导出工作,这意味着在二进制文件上运行nm时不可见。

我试图将其简单地添加到标题.h中

#define EXPORT __attribute__((visibility("default")))
EXPORT int callme(int test);

我也尝试在标头中声明它

EXPORT int callme(int test) {return 0;}

但是然后我得到了其他目标文件中已经存在的符号错误的一堆。

编辑:这是一个简单的C函数,我也尝试过

 #if !defined(__cplusplus)
 #define MONExternC extern
 #else
 #define MONExternC extern "C"
 #endif

 MONExternC int callme (int test);

对于C ++,我还是个新手,非常感谢您的任何见解或帮助。

您已在标头中定义 (而不只是声明)独立的,非成员,非模板,非内联函数。 这正是您不应该做的事情。 它会导致您描述的某种错误,并且是标准所禁止的。

标头中应仅具有函数原型。 将其定义移到恰好一个源文件中。

可见性属性仅在构建共享库时才有意义。 您可能不需要它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM