在64位环境中使用32位.so文件

Far*_*616 5 linux 64-bit x86 qt qt4

我正在使用Ubuntu 12.04 64位,我在编译需要32位.so文件的Qt项目时遇到以下错误.

错误: skipping incompatible /opt/lib/libEposCmd.so when searching for -lEposCmd

我想用-m32选项编译这个项目,但我不知道我应该在哪里插入这个选项.

Far*_*616 2

通过以下说明解决了问题:

  • 安装 g++-multilib、libstdc++.i386、libgcc.i386、glibc-devel.i386、gcc-c++-32bit
  • 编辑 make 文件并调整以下配置:

    cc = add -m32
    CFLAGS = add -m32
    INCPATH = linux-g++-32
    LFLAGS = -m32 -w1, -o1
    LIBS = i386-linux-gnu
    
    Run Code Online (Sandbox Code Playgroud)
  • 制作软链接

    /usr/lib/i386-GNU-linux/libQtCore.so.4.1
                        libQtGui.....
                        libQtXmlPattern..
                        libQtXml.....
    
    Run Code Online (Sandbox Code Playgroud)

    到 lib .... .so.o 然后到 lib .... .so make clean 并编译