Итак, я работаю над заданием для курса Стэнфорда CS107 и не могу закончить компиляцию незаконченной программы (файлы проекта и оригинальный make-файл можно найти на странице курса , я работаю над заданием 4 RSS.)
После долгих исследований я думаю проблема в том, что я использую gcc на 64-битной архитектуре (Mac OS 10.6)а предварительно скомпилированный библиотечный код в 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
Поэтому я прошу любые идеи о том, что я мог бы сделать, чтобы решить эту проблему.Я часами настраиваю настройки, а Google работает безрезультатно.