gpt4 book ai didi

编译和链接 32 位架构的 C 程序

转载 作者:行者123 更新时间:2023-11-30 14:29:11 26 4
gpt4 key购买 nike

所以我正在完成斯坦福大学 CS107 类(class)的作业,但我无法编译未完成的程序(项目文件和原始 makefile 可以是 found on the course page ,我正在工作关于作业 4 RSS。)

经过大量研究,我认为问题是我在 64 位架构 (Mac OS 10.6) 上使用 gcc 以及 assn-4- 下的预编译库代码rss-news-search-lib/linux 适用于 32 位架构。我尝试将 gcc 设置为使用 i386 和 -m36,但没有任何效果,我只是猜测。

这是我运行 make 时得到的输出:

gcc  -g -Wall -std=gnu99 -Wno-unused-function    -c -o rss-news-search.o rss-news-search.c
gcc rss-news-search.o -g -Wall -std=gnu99 -Wno-unused-function -g -lnsl -lrssnews -L/Users/derp/Documents/OCW/CS107/Work/programming4/assn-4-rss-news-search-lib/linux -o rss-news-search
ld: library not found for -lnsl
collect2: ld returned 1 exit status
make: *** [rss-news-search] Error 1

这是我删除 -lnsl 时得到的输出,其中提到了架构差异:

gcc  -g -Wall -std=gnu99 -Wno-unused-function    -c -o rss-news-search.o rss-news-search.c
gcc rss-news-search.o -g -Wall -std=gnu99 -Wno-unused-function -g -lrssnews -L/Users/derp/Documents/OCW/CS107/Work/programming4/assn-4-rss-news-search-lib/linux -o rss-news-search
ld: warning: in /Users/derp/Documents/OCW/CS107/Work/programming4/assn-4-rss-news-search-lib/linux/librssnews.a, file was built for unsupported file format which is not the architecture being linked (x86_64)
Undefined symbols:
"_URLConnectionDispose", referenced from:
_ProcessFeed in rss-news-search.o
_ParseArticle in rss-news-search.o
... several more undefined symbols mentioned ...
ld: symbol(s) not found
collect2: ld returned 1 exit status
make: *** [rss-news-search] Error 1

因此,我正在寻求有关我可以采取哪些措施来解决此问题的任何想法。我已经调整设置好几个小时了,谷歌搜索也无济于事。

最佳答案

万一像我这样的人在这么长时间过去后仍在寻找答案......通过安装 32 位 Ubuntu 的 wubi 版本,问题很容易解决。在64位系统上运行良好。您只需要编辑 makefile,以便它知道在哪里查找提供的库。

关于编译和链接 32 位架构的 C 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5163435/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com