Vah*_*agn 10 c++ linker gcc shared-libraries 32bit-64bit
在64位主机上,我试图用-m32选项构建共享库.这些库是否可以与常规的64位库链接?
我正在做这样的事情:
g++ -m32 -shared source.cpp -l 64_bit_library.so -o 32_bit_library.so
Run Code Online (Sandbox Code Playgroud)
并收到如下错误消息:
/usr/bin/ld: skipping incompatible 64_bit_library.so
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:如何64_bit_library.so以及32_bit_library.so应该在64位主机上编译,以便32_bit_library.so能够被链接64_bit_library.so?
Fle*_*exo 11
将32位应用程序与64位库链接起来是不可能的,反之亦然.问题是指针和类型通常不能在它们之间传递.通常,解决方法是生成另一个大小的子进程,并使用IPC与该进程进行通信.
以这种方式思考:如果我有一个简单的C函数:
extern void foo(void*);
Run Code Online (Sandbox Code Playgroud)
如果它在64位库中,我尝试从32位库中调用它,指针的另一半来自哪里?
相反,如果它在一个32位的库中,我从64位应用程序调用它会发生另一半的指针,我不得不输掉它来调用它?
| 归档时间: |
|
| 查看次数: |
22757 次 |
| 最近记录: |