работен код за разширено програмиране в UNIX среда 2ed за предпочитане на Ubuntu/gcc4

учех системно програмиране на Linux и разглеждах книгата APUE 2ed от W. Richard Stevens и Stephen A. Rago.

Кодът, даден на 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, свързано от Jacinda. - 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