我的要求是处理一些接口(interface) .h 文件。现在我的项目中有 .h 和 .cpp/.cc 文件。
我需要在 Linux Fedora 上使用 NetBeans/Eclipse 将其编译为共享的 64 位 Linux 兼容库 (*.so)。
最佳答案
由于 GCC C++ ABI 约定从一个 GCC 版本到下一个版本(例如从 g++-4.4
到 >g++-4.6
)您的共享库可能依赖于用于构建它的g++
版本
(实际上,g++ 内部的更改通常很小,因此您可能不会受到影响)
如果您希望符号可通过 dlsym 公开访问您最好在头文件中声明它 extern "C"
(否则您应该 mangle its name )。
关于如何创建共享库,请阅读类似 Program Library Howto 的文档.
另请参阅this question
我建议使用普通的命令行工具(例如Makefile
-s)构建共享库。不要依赖像 NetBeans/Eclipse 这样的复杂 IDE 来构建它们(它们无论如何都会调用命令行实用程序)。
关于c++ - 如何为 C++ 代码制作 64 个共享 64 位 Linux 兼容库 (*.so),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9634382/