Компиляция кода от apue

я смотрел также, в течение нескольких недель теперь. это - h323 и видео. если Вам не нужен h323, или Вам не нужно видео, это - совершенно другая история, и у Вас есть много опций.

в зависимости от ОС, и загружавший сотни мегабайтов и исходного кода и приложений, через все 3 основных Ose Linux, окна и macosx, вот - то, что я нашел работами:

  • Linux - выбором является ekiga., это - все, что Вы получаете. нет никакого другого рабочего видео h323 клиентов, и ekiga не в широком масштабе стабилен в этом.

  • macosx - существует xmeeting., получают версию 0.42, потому что это немного лучше.

  • окна - myphone3 из openmcu.ru работают очень очень хорошо. это - ад для нахождения, потому что сайт на русском языке и не индексируется очень хорошо, плюс имя "myphone" придумывает все виды дерьма в поисковых системах Google, которое делает его еще тяжелее для нахождения. я попробовал 3.0.9, и это работает действительно хорошо. http://openmcu.ru/public/myphone3/

теперь, если Вы не возражали использовать SIP вместо этого, затем существует адская партия больше опций. работы ekiga вполне прилично и работы jitsi вполне прилично через все 3 платформы..., но нет никаких стабильных серверов видеоконференций для Linux! хотя звездочка 10 и выше теперь имеет "app_confbridge", необходимо использовать те же самые КОДЕКИ для видео, потому что app_confbridge просто делает "передачу" видеоданных (широковещательные сообщения всем связанным клиентам).

единственный стабильный достойный сервер видеоконференций, который я мог найти, был openmcu - но не стандартная версия: только версия на openmcu.ru, найденном здесь: http://openmcu.ru/public/sources/

удача - и если Вы находите что-нибудь лучше сообщенным мне!

12
09.03.2019, 17:05
6 ответов

Краткий обзор того, как записать и скомпилировать программы в Усовершенствованном Программировании в UNIX® Environment благодаря slm для помощи мне понять шаги. Можно загрузить исходный код отсюда. Мне жаль, что эта информация не была включена как часть приложения b книги, где заголовочный файл объяснен.

Несжатый файл содержит каталоги с названиями глав, и два других назвали include и lib. У тех с названиями глав есть все программы той главы в них.

include каталог содержит заголовочный файл, который используется в большинстве программ в книге: apue.h. lib каталог имеет исходный код реализаций для того заголовка.

Позволяет предполагают, что несжатый файл расположен в: SCADDRESS/, например, это могло бы быть: /home/yourid/Downloads/apue.3e/

После того как Вы распаковываете исходный код, входите в каталог и работаете make:

$ cd SCADDRESS
$ make

make скомпилирует все программы во всех главах. Но важная вещь состоит в том, что прежде, который, это сделает библиотекой, которая будет содержать реализации функций в apue.h.

Для компиляции примера программы, который Вы пишете из книги работайте, эта команда GCC (берущий имя Вашей программы myls.c который является первым в книге):

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

-I говорит gcc какой каталог искать включать файл. -L говорит этому местоположение каталога библиотеки, и -lapue, говорит названию файла библиотеки искать в том каталоге. Таким образом, что-LXXX означает искать файл в каталоге библиотеки с именем: libXXX.a или libXXX.so.

13
27.01.2020, 19:55
  • 1
    Это могло иногда быть поучительно для добавления -Wall к gcc команда, чтобы заставить его предупреждать чаще. –  MattBianco 03.11.2014, 11:14

Я думаю это stackoverflow названные Вопросы и ответы: Где функция err_sys () определена? имеет то, в чем Вы нуждаетесь. 2 из ответов в том потоке сказали следующее:

A1

err_sys () является функцией, используемой в нескольких книгах, записанных W. Richard Stevens. Эта функция используется для печати, какая ошибка произошла.

Функция используется в программах в текстах с пользовательским заголовочным файлом "ourhdr.h" (или что-то еще). Проверьте приложение на список заголовков или функциональное определение.

A2

Источник для этой функции (от Усовершенствованного Программирования в UNIX® Environment, W. Richard Stevens), может быть найден на веб-сайте книги: http://www.apuebook.com/.

Ссылки

3
27.01.2020, 19:55
  • 1
    Спасибо, но моя проблема то, как скомпилировать ее, таким образом, эти ошибки не подходят. err_sys просто пример, в том заголовочном файле существуют другие функции. Таким образом, я ищу универсальное решение этой проблемы (как включать заголовочный файл и успешно скомпилировать его), не переписывая эту конкретную функцию. –  makhlaghi 17.12.2013, 06:20
  • 2
    @makhlaghi - ошибки являются b/c, Вы пропускаете конкретные реализации. Вы обычно включаете эти w/ gcc использование -L аргументы, ссылающиеся на библиотеки для использования. Библиотеки .so или .a файлы. Это учебное руководство могло бы быть полезным в знакомстве w/ gcc, ntu.edu.sg/home/ehchua/programming/cpp/gcc_make.html. Конкретно этот раздел: "Ища Заголовочные файлы и Библиотеки (-I,-L и-l)" –  slm♦ 17.12.2013, 06:32
  • 3
    Большое спасибо за Ваше терпение имея дело со мной (быть неопытным!). Я понял, как скомпилировать его. Я должен использовать эту команду: gcc -o myls myls.c -L LIBPOSITION -lapue. Где LIBPOSITION находится в lib каталог несжатого каталога. Еще раз спасибо. –  makhlaghi 17.12.2013, 06:54
  • 4
    @makhlaghi - не упоминает это. Мне нравится помогать другим понять, как работают вещи. Хотите верьте, хотите нет, при необходимости объяснить вещи это помогает мне понять вещи лучше также. Спасибо за Q и удачу w/Вы gcc поездка! –  slm♦ 17.12.2013, 08:16
[1126872] То, что объяснил Маклиги в своем последнем комментарии, работало на меня, но мне пришлось использовать другой исходный код, а не тот, что с официального сайта www.apuebook.com. [12137] Тот, который я использовал, можно найти в [1127435] https://github.com/roktas/apue2e[1127436]. Как кто-то объяснил, этот был реализован для работы с современной системой Linux.[1126875].
1
27.01.2020, 19:55

Следующие шаги сработали для меня (Ubuntu 14.04 64bit):

  1. wget http://www.apuebook.com/src.3e.tar.gz Скачайте gzipped tar архив с официального сайта книги
  2. tar xzf src.3 e.tar.gz Это создаст разархивированную папку под названием apue.3e в текущем каталоге по умолчанию
  3. cd apue.3e
  4. sudo apt-get install libbsd-dev. Это нужно для ссылки -lbsd в /threads
  5. make Это автоматически скомпилирует весь исходный код во всех папках
  6. cd intro затем ./ls1 ... работает как ожидалось (перечисляет файлы из родительского каталога)

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

2
27.01.2020, 19:55

Я успешно собрал библиотеку, используя приведенную здесь инструкцию командной строки. У меня возникли трудности с созданием примера в Xcode. Для этого я определил пути поиска для файлов заголовков и библиотек (панель "Build Settings"). Затем я определил саму библиотеку в панелях "Build Phases" и "Link Binary With Libraries". После этого все просто.

0
27.01.2020, 19:55

'err _sys' и 'err _quit' присутствуют в файле 'errno.c', которого нет в вашем текущем рабочем каталоге. Прежде всего, откройте папку «apue», которую вы загрузили и распаковали, и скопируйте все элементы в этой папке, например, advio, daemons и т. д., все в ваш текущий рабочий каталог. Вы можете узнать свой текущий рабочий каталог, с помощью команды «pwd». Теперь в папке «include» вы найдете заголовочный файл apue. Скопируйте его также в текущий рабочий каталог. Короче говоря, любой файл.c, который вы собираетесь использовать в своей программе, должен находиться в вашем текущем рабочем каталоге. Итак, скопируйте все эти файлы в ваш текущий рабочий каталог.

Теперь перейдем к решению вашей проблемы. Файл errno.c находится в папке lib в папке apue. Скопируйте его в текущий рабочий каталог. Это решит вашу проблему.

0
27.01.2020, 19:55

Теги

Похожие вопросы