在Linux下,在C中怎么调用C++的库函数
在Linux下,在C中如何调用C++的库函数
我有一个 C++ 的库 (使用 g++ 编译) ,我想在C 语言调用 (gcc 编译),如何实现,谢谢!
以下是我试过的方式一:
1. 将该 C++ 库 通过 g++ 编译成 .a 文件
2. 然后将该 .a 文件再次封装成一个 gcc 编译的 .a
3. 然后再去我的主程序中调用,报错,其中有相关的 C++ 部分无法引出
方式二:
1. 将该 C++ 库,通过 g++ 编译成 .so 文件
2. 然后将该 .so 再次封装,通过 dlopen, dlsym,dlclose 等封装
3. 然后在我的主程序中,调用第二次封装的.so,报 dlopen 失败,其中同样报出相关的 C++ 函数名无法定位?
------解决方案--------------------
c能调用C++的库函数...?
不会 帮顶..
------解决方案--------------------
用 C++ 写一个 wrapper,提供一些 extern "C " 修饰的 API 供 C 程序调用。
------解决方案--------------------
extern "C "
------解决方案--------------------
c++ 编译器只提供向下兼容, 没有向上兼容的功能吧
------解决方案--------------------
……LINUx啊,不会啊,只知道编译成LIB比较好弄,网上的资料也比较多
我有一个 C++ 的库 (使用 g++ 编译) ,我想在C 语言调用 (gcc 编译),如何实现,谢谢!
以下是我试过的方式一:
1. 将该 C++ 库 通过 g++ 编译成 .a 文件
2. 然后将该 .a 文件再次封装成一个 gcc 编译的 .a
3. 然后再去我的主程序中调用,报错,其中有相关的 C++ 部分无法引出
方式二:
1. 将该 C++ 库,通过 g++ 编译成 .so 文件
2. 然后将该 .so 再次封装,通过 dlopen, dlsym,dlclose 等封装
3. 然后在我的主程序中,调用第二次封装的.so,报 dlopen 失败,其中同样报出相关的 C++ 函数名无法定位?
------解决方案--------------------
c能调用C++的库函数...?
不会 帮顶..
------解决方案--------------------
用 C++ 写一个 wrapper,提供一些 extern "C " 修饰的 API 供 C 程序调用。
------解决方案--------------------
extern "C "
------解决方案--------------------
c++ 编译器只提供向下兼容, 没有向上兼容的功能吧
------解决方案--------------------
……LINUx啊,不会啊,只知道编译成LIB比较好弄,网上的资料也比较多