C编译的.so是否可以与C++应用程序一起使用?

Nal*_*neh 4 c c++ shared-libraries dynamic-linking ld-preload

如果我想使用LD_PRELOAD为C++应用程序(使用g ++构建)动态链接共享库(.so),是否从C源文件(使用gcc)或C++源文件生成.so是否重要? (使用g ++)?为什么或为什么不呢?

谢谢你帮我理解这一点.

Lig*_*ica 5

是的,C++可执行文件可以(静态和动态)链接到C库.

这完全是故意的.C++ ABI 旨在向后兼容.

您必须确保将C++程序中编写的库符号的函数声明等标记extern "C"为表示您正在跨越语言边界.通常,库自带的头文件将为您执行此操作.