簡體   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