回复: 设置好QT/E环境,编译EXAMPLE出错
#6 [gloryn 06-01 14:24]
引用第5楼shiroki于2006-06-01 14:01发表的“”:
这个问题我记不太清楚了。 好像是编译的时候会找到.a, 但是还是动态链接的。 所以运行的时候也会去寻找动态库。
等会儿我再看看
谢谢你的回复。
我曾经看过一篇文章,大致的意思就是说在链接的时候要么全部使用动态链接,要么全部是静态链接,不能够有即有动态链接又有静态链接的情况。
我目前的情况是: 编译器里没有libstdc++.so(目标板上也没有),只有libstdc++.a,在编译QTE及QTopia时都没有选择-static,这样我认为不会静态链接。但我想QTE或QTopia肯定使用了libstdc++库。在目标板上,我可以运行QTEDIR/examples/hello, 这岂不是说明QTE已经将libstdc++静态链接到程序里了(目标板上根本没有libstdc++.so)? 这就让我搞不明白了。
另外我用ldd看了看x86下的QTopia程序qpe,结果如下:
libqtopia2.so.2 =>/TrollTech/qtopia-free-2.1.1-debug/lib/libqtopia2.so.2 0x008d5000)
libqtopia.so.1 => /TrollTech/qtopia-free-2.1.1-debug/lib/libqtopia.so.1 (0x00a88000)
libqpe.so.1 => /TrollTech/qtopia-free-2.1.1-debug/lib/libqpe.so.1 (0x00d7f000)
libqte.so.2 => /TrollTech/qt-embedded-free-2.3.10-debug/lib/libqte.so.2 0x00111000)
libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x007f8000)
libm.so.6 => /lib/tls/libm.so.6 (0x00509000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x0052b000)
libc.so.6 => /lib/tls/libc.so.6 (0x00b8b000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x006b7000)
libuuid.so.1 => /lib/libuuid.so.1 (0x0061c000)
libdl.so.2 => /lib/libdl.so.2 (0x00534000)
libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0x00583000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x00707000)
#7 [戒三 06-01 14:42]
谢谢,楼上各位,只要把联接GCC改为G++ 就好了!