[英]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.