我目前正在试图编译和链接我的Debian 64位上的32位应用程序,但在链接时失败。
我正在使用(在我的Makefile中)编译的命令是:
gcc -Os -m32 -Wall -g -c $< -o $@
这似乎工作。
在Windows上增加堆栈大小(GCC)
链接到dynamic共享库时,ld做了什么?
与旧版本的libstdc ++链接
如何构build我的Linux c ++应用程序以链接到旧版本的libc?
如何在Windows下使用PyQt(和sip)编译(和链接)python模块
然后我用下面的命令链接:
gcc -m32 -lcurses $^ -o $@
这会失败,并提供以下错误:
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../libcurses.so when searching for -lcurses /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../libcurses.a when searching for -lcurses /usr/bin/ld: skipping incompatible /usr/lib/libcurses.so when searching for -lcurses /usr/bin/ld: skipping incompatible /usr/lib/libcurses.a when searching for -lcurses /usr/bin/ld: cannot find -lcurses collect2: ld returned 1 exit status
我到目前为止所尝试的(我在网上其他地方find的常用解决scheme)是:
安装gcc-multilib
安装lib32ncurses5和lib32ncurses6dev
可悲的是,迄今为止这些工作都没有奏效。 任何帮助将非常感激,因为我没有想法。 我最后的手段是使用32位系统,但是如果可能的话,我想避免这种情况。
如何在Linux / gcc上创build一个与pthreads和libstdc ++静态链接的共享对象?
如何告诉link.exe使用wmain作为入口点。 LNK2019:函数__tmainCRTStartup中引用的未parsing的外部符号main
静态/dynamic运行时链接
有两个问题:
您的链接命令不正确:链接行上的库的顺序很重要 。 该命令应该是: gcc -m32 $^ -o $@ -lcurses
既然你想链接ncurses ,使最后一个参数-lncurses 。
消息显示gcc没有找到ncurse库的32位。
一个快速的解决方案:看我的机器(Ubuntu 11.10),我认为应该是
gcc -m32 -lncurses $^ -o $@ -v
这个库实际上位于/lib32/libncurses.so.5.9。
一般来说,如果遇到问题,请尝试。
gcc -m32 -lcurses $^ -o $@ -v
它会打印出很多东西。
查找类似于-L的参数,并尝试在目录中查找库文件(libfoo.so或libfoo.a)。
您可能需要lib32ncurses5-dev包或类似的东西,为ncurses提供32位变体开发包。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。