рабочий код для расширенного программирования в среде UNIX 2ed, предпочтительно на Ubuntu/gcc4

Я изучал системное программирование для Linux и просматриваю книгу APUE 2ed У. Ричарда Стивенса и Стивена А. Раго.

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

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


person deepak    schedule 01.11.2010    source источник


Ответы (3)


У rotkas есть репозиторий на github, который содержит код с модификациями, позволяющими компилировать его в современных системах. У меня это работало на OSX 10.7 и Ubuntu 10.04. Хотя в последнее время в этом нет необходимости.

https://github.com/roktas/apue2e

person Jacinda    schedule 16.02.2012

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

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

person Wodin    schedule 07.11.2010
comment
можешь объяснить процесс? Что вы редактировали в Make.defines.linux? - person SandBag_1996; 11.01.2013
comment
Кажется, я просто изменил WKDIR, чтобы указать, куда распаковал исходный код, но точно не помню. Также попробуйте репозиторий github, на который ссылается Джасинда. - person Wodin; 12.01.2013
comment
На какой ОС вы пытались скомпилировать? - person Jacinda; 24.05.2013

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

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

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

если у кого-то возникла такая же проблема, перейдите по этой ссылке.

person Community    schedule 07.04.2014