Mac OS X Sierra: неопределенные символы для архитектуры x86_64

Я пытаюсь создать исходный файл C на основе Linphone в Mac OS X Sierra, но получаю следующую ошибку.

Это ссылка на исходный файл C. http://www.linphone.org/docs/liblinphone/group__basic__call__tutorials.html

Отредактировано:

Я пытаюсь скомпилировать исходный код с помощью этой команды

clang -o tt tt.c -I/ Пользователи /softdev/ Загрузки /linphone-sdk-3.11.1-mac/include/

Ошибка:

Неопределенные символы для архитектуры x86_64
ld: символы не найдены для архитектуры x86_64
clang: error: сбой команды компоновщика с кодом выхода 1 (используйте -v для просмотра вызова)

Я пытался изменить целевой процессор, но не сработал.

Моя система имеет XCode 8. Любая помощь по этому поводу будет оценена.

Отредактировано: полный вывод

Неопределенные символы для архитектуры x86_64:
  "_linphone_call_get_state", по ссылке с:
      _main в tt-ca2045.o
  "_linphone_call_ref", по ссылке с:
      _main в tt-ca2045.o
  "_linphone_call_unref", по ссылке с:
      _main в tt-ca2045.o
  "_linphone_core_destroy", по ссылке от:
      _main в tt-ca2045.o
  "_linphone_core_invite", по ссылке с:
      _main в tt-ca2045.o
  "_linphone_core_iterate", по ссылке с:
      _main в tt-ca2045.o
  "_linphone_core_new", по ссылке с:
      _main в tt-ca2045.o
  "_linphone_core_terminate_call", по ссылке из:
      _main в tt-ca2045.o
  "_ms_usleep", по ссылке с:
      _main в tt-ca2045.o
ld: символы не найдены для архитектуры x86_64
clang: error: сбой команды компоновщика с кодом выхода 1 (используйте -v для просмотра вызова)

1 ответ

Решение

Я получил пример кода для компиляции с использованием этого:

clang -o hello hello.c -Ilinphone-sdk-3/include -Llinphone-sdk-3/lib -llinphone -lmediastreamer_base

Clang-х -I параметр указывает, где находятся файлы заголовка (.h)

А что касается моих дополнений, -L указывает путь к clang, чтобы добраться туда, где находятся файлы lib. В вашем случае это может жить в -L/Users/softdev/Downloads/linphone-sdk-3.11.1-mac/lib

затем -l указывает, какие dlib-файлы вы хотите включить (удалить lib префикс и dylib суффикс).

Наконец, вам нужно добавить пропущенную строку в пример кода, на который вы указали. Добавлять:

#include <unistd.h>

после signal.h

Другие вопросы по тегам