与MinGW一起建立精灵共享图书馆
Building Elf Shared Library with MinGW
我正在尝试用MinGW在Windows上构建一个共享库,请遵循本教程:Building_elf_shared_libraries
我运行这一步:
$ gcc -fPICenter code here -c libfoo.c -o libfoo.o
$ gcc -Wall -O2 -shared -Wl,-soname,libfoo.so.1 -o libfoo.so.1.0.0 libfoo.o
当我得到。so时,我试着用readelf读取它,得到错误:
$ readelf -h libfoo.so.1.0.0
readelf: Error: Not an ELF file - it has the wrong magic bytes at the start
我误解什么了吗? 是的,你确实误解了一些东西,MinGW是gcc的一个端口,使用gcc来目标窗口并在windows上本机运行(或者如果您的主机是linux,则从linux目标窗口)。默认情况下,它将以PE格式输出文件,而不是ELF格式。这就是readself调用失败的原因。综上所述,我假设您正在尝试构建一个动态链接库,因此我将在这里提供一个很好的教程,它应该会让您朝着正确的方向前进。
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 是否可以通过C++扩展强制多个python进程共享同一内存
- 在cuda线程之间共享大量常量数据
- 如何从具有移动语义的类对象中生成共享指针
- 在c代码之间共享数据的最佳方式
- 在两个类中共享相同的函数调用,并在不需要时避免空实例化
- 将静态库链接到不带-fPIC的共享库中
- 为什么std::互斥需要很长的、非常不规则的时间来共享
- 使用Boost Interprocess创建托管共享内存需要很长时间
- 无法在Ubuntu上将共享库与Eclipse链接
- 从python调用openMP共享库时,未定义opnMP函数
- 在为LINUX创建共享库时,如何避免STL的私有/弱副本
- 为什么我的共享库中存在展开符号
- 使用共享指针的函数调用,其对象应为 const
- 具有两个独占锁组的共享锁
- 共享队列的线程安全
- 将Thirt-Party共享图书馆与Python Ctypes集成
- SWIG和C++共享图书馆
- 共享图书馆图书馆.所以静态链接到libfoo.A,程序链接到图书馆.还有libfoo.那么,发生了什么呢?
- 与MinGW一起建立精灵共享图书馆