C++編程語言的應用范圍非常廣泛,應用方式靈活,它能夠支持多種程序設計風格,幫助我們輕松解決許多問題。比如今天為大家介紹的C++調用C鏈接庫具體操作方法,就是一個比較經典的例子,可以讓大家充分了解到其中的概念。
C++調用C鏈接庫,其實相對C調用C++。因為C++本來就向下兼容C吧個人見解)。
但由於編譯器的設計不同,會出現一些問題,如下:如中間部分,有一句undefined reference to 'helloC()' ,helloC()是我在C鏈接庫中的函數)
簡單說來原因就是未經處理的C代碼編譯後函數名可能變為_helloC()之類的,而C++編譯後函數名卻不是這樣,所以就對不上。
需要在include C的文件的時候加上extern "c"
在練習中,寫了三個文件:c.h c.c cpp.cpp 前兩個編譯為C鏈接庫,cpp.cpp使用C。驗證了C++調用C鏈接庫可以訪問到C的全局變量。
c.h:
- #include "stdio.h"
- void helloC();
- int abc = 1;
c.c:
- #include <stdio.h>
- #include "c.h"
- void helloC(){
- printf("I am Kenko");
- }
cpp.cpp:(重點在於如何include)
- #include <iostream>
- using namespace std;
- extern "C" {
- #include "c.h"
- }
- int main(){
- helloC();
- cout<<abc<<endl;
- return 0;
- }
C++調用C鏈接庫的相關方法就為大家介紹到這裡。