zoukankan      html  css  js  c++  java
  • c++程序调用c函数 and otherwise zz

    c++程序调用c函数

    a.c
    a.h
    b.cpp

    b包含a.h得到了a中函数的原型,a.c独立编译成.o文件
    但是链接的时候 b中调用a.c中的函数老是 undefined reference

    1.  b文件中
    extern "C"
    {
     #include "a.h"
    }

    2.   我在a.h中用了这样的结构
    #ifdef __cplusplus
    extern "C" {
    #endif

    //简单的log
    extern bool log_init(const char *filename);
    extern void log_it(const char *fmt,...);

    #ifdef __cplusplus
    }
    #endif

    C调用C++ 写的lib.so(a)

    例如有一个c++的库, foo.a(so)
    里面有几个函数
    int add(int a, int b);
    int plus(int a, int b);

    首先你要写一个c++的外包
    也就是
    wapper.cpp
    extern int add(int a, int b);
    extern int plus(int a, int b);
    extern "C"
    {
    int add_wapper(int a, int b)
    {
        add(a, b);
    }
    int plus_wapper(int a, int b);
    {
        plus(a, b);
    }
    }

    然后你的c就可以调用add_wapper和plus_wapper了
    foo.c
    void func()
    {
        add_wapper(1, 2);
        plus_wapper(2, 3);
    }

    gcc foo.c wapper.cpp foo.a

  • 相关阅读:
    Photoshop
    前端性能优化
    Angular Cli和npm、node.js命令
    Angular项目结构
    页面布局
    滚动条与height
    1.2 Angular入门
    前端的e2e测试
    Angular的部署
    jQuery插件开发的基本形式
  • 原文地址:https://www.cnblogs.com/dayouluo/p/396065.html
Copyright © 2011-2022 走看看