[英]Can I use a shared library compiled by C from C++ using dlopen
首先,我嘗試使用C創建簡單的共享庫,並使用dlopen調用該庫,並且運行良好。 然后,我要有一個cpp文件來調用c編譯的共享庫。
在簡單的程序中調用就可以了。 這是否意味着我們可以在較大的程序中從c ++調用c創建的庫?
在C ++中使用dlopen的soe文件中,有人提到使用extern,因為我認為共享庫是用C ++編寫的,因此要轉換為C Like。 Aand(如果已在c中)。 我們不需要使用extern,而直接從c ++中使用。
我對么??
在所有主要操作系統上,對於C和C ++編譯,函數的調用約定均相同。 C ++增加的主要區別是,類成員函數具有一個附加的隱式參數( this
指針),並且為了反映類型簽名而對其名稱進行了修飾,以便可以重載單個函數名稱。 除了調用函數以外,對於C和C ++均相同。
當您使用dlopen
和更高版本的dlsym
,唯一需要關注的是符號的命名。 但是,由於您打算訪問C庫,因此vom C ++名稱修改不是問題; 您可以僅使用最初編寫符號時使用的符號標識符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.