2010-11-01 3 views
4

Я изучал системное программирование Linux, и я просматриваю книгу APUE 2ed по W. Richard Stevens и Stephen A. Rago.рабочий код для расширенного программирования в среде UNIX 2ed желательно на Ubuntu/gcc4

Код, указанный на http://www.apuebook.com/, не работает. Неопределенные определения, нереализованные функции (приведены в приложении)

Может ли кто-нибудь указать мне на код с компиляцией для APUE 2ed, желательно на Ubuntu/gcc4.

ответ

2

Я загрузил источник, а затем, в соответствии с файлом README, отредактировал Make.defines.linux и изменил WKDIR, чтобы указать, где я распаковал исходный код. Затем я запустил make и почти все, скомпилированные только с несколькими предупреждениями.

threadctl не обобщать, хотя, и я должен был изменить #include <limits.h> к #include <linux/limits.h> в getenv1.c и getenv3.c, прежде чем он будет компилировать (не уверен, что это лучший исправить, но это работает.)

+0

Вы можете объяснить процесс? Что вы редактировали в Make.defines.linux? –

+0

Я думаю, что я только что изменил WKDIR, чтобы указать на то, где я распаковал исходный код, но я точно не помню. Также попробуйте репозиторий github, связанный с Jacinda. – Wodin

+0

Какую ОС вы пытались скомпилировать? – Jacinda

4

rotkas имеет репозиторий github, который содержит код с изменениями, чтобы он скомпилировался на современных системах. Он работал для меня на OSX 10.7 и Ubuntu 10.04. Однако в последнее время это не нужно.

https://github.com/roktas/apue2e

0

Спасибо Джасинды за ссылку он работал для меня, но я должен был сделать что-то еще слишком

Я использовал исходный код из GitHub/roktas и использовать следующую команду для запуска программы

gcc -o myls myls.c -I SCADDRESS/include/ -L SCADDRESS/lib/ -lapue 

если у кого есть такая же проблема может пойти в this link.