簡體   English   中英

我可以使用dlopen從C ++使用C編譯的共享庫嗎

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM