C調用C++的方法

來源:互聯網
上載者:User
看了一下別人的文章,自己又整理了一下,貼上範例程式碼。
這是A.h
#ifdef __cplusplusextern "C"{#endifint printf_cpp();#ifdef __cplusplus}#endif

這是A.cpp
#include <iostream>using namespace std;extern "C"{int printf_cpp(void){        cout<<"c++ printf\n"<<endl;}}
然後編譯產生.o檔案
g++ -c a.cpp

在c中調用://main.c
#include "a.h"int main(int argc, char *argv[]){        printf_cpp();        return 0;}

編譯時間:gcc main.c A.o -o a.out -lstdc++
注意加上-lstdc++
這樣就可以輸出正確的結果了
也可以把它製作成庫:ar rcs  liba.a a.o
然後編譯:gcc main.c -I. -L. -la -lstdc++
也行

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.