創建Windows DLL時,可以輕鬆選擇導出的符號(使用dllexport)。在這種情況下,未導出的符號在庫外不可見。如何在Linux上獲得相同的功能? 換句話說: 假設我在一個項目中有10個函數。其中三個應該導出,其餘7個是輔助函數,它們不應該從庫API中使用。我如何以這種方式創建SO文件,讓我實現這一目標?如何只從Linux SO庫導出某些功能?
0
A
回答
1
在默認情況下,一切的Linux/GCC輸出(取決於語言規則,當然是:在一個匿名的命名空間的東西永遠不會被導出)。
如果要停止被導出的符號,你可以使用__attribute__((__visibility__("hidden")))
。例如:
__attribute__((__visibility__("hidden"))) void myPrivateFunction();
+0
添加要輸出的代碼。 – TheRealChx101
相關問題
- 1. 從.SO(linux)導出C++類
- 2. 只能從某些行
- 3. 只有在某些承諾解決後才能導入/導出
- 4. 如何在編譯C代碼時指定從.so庫導出哪些函數?
- 5. 如何導出/導入某些行?
- 6. Git只能簽出某些目錄
- 7. 如何用jQuery提供某些功能?
- 8. 使用GCC,我如何只導出靜態庫中的某些函數?
- 9. eclipse庫包 - 無法從某些庫中導出包
- 10. 如何在共享庫中執行某些功能
- 11. ArcGis Engine如何突出顯示某些功能/形狀?
- 12. AngularJS如何在某些功能完成後執行功能?
- 13. 如何只從MySql數據庫表中提取某些行
- 14. 只溢出某些元素
- 15. 從Matlab矩陣導出某些列
- 16. 如何從iOS Native Sharing功能中刪除某些選項?
- 17. 導出功能
- 18. shell/linux腳本只能選擇某些文件到FTP
- 19. Linux設備節點只能訪問某些進程組
- 20. 如何訪問RStudio中的共享庫(.so)文件功能?
- 21. 如何使用codeigniter從表中導出某些行?
- 22. 如何從Oracle數據集中排除某些表導出
- 23. 如何從流中的其他文件導出某些內容?
- 24. Ruby FFI沒有找到某些功能?
- 25. 如何在vim的某些特定窗口中禁用某些功能?
- 26. 導出功能TLD
- 27. 只在某些動作中啓用js功能
- 28. 只有添加過濾器/功能在某些頁面
- 29. 複印功能只對某些輸入有效
- 30. 蟒蛇功能 - 以一個字符串,只有某些字符
假設您使用GCC,[this](http://gcc.gnu.org/wiki/Visibility)應該有所幫助。 – devnull