Подробнее о Вызов GCC .Обратите внимание, что -framework
не является опцией, известной gcc
(как опубликовано FSF).Вы можете попробовать gcc --help
, чтобы получить опции, понятные вашим gcc
, и вы также можете передать -v
, чтобы получить помощь от подпрограмм, используемых gcc
.Возможно, ваша gcc
команда на самом деле является неким Clang компилятором (IIRC, это может иметь место в системах Apple).
Возможно, вы захотите связать некоторую библиотеку .Так что читайте о опциях ссылки .
Порядок аргументов gcc
очень важен и может зависеть от системы.Обычно исходные файлы должны идти перед объектными файлами и библиотеками (их порядок важен, от высокоуровневых до низкоуровневых).См. Также this .
Возможно, вы захотите (я не уверен в порядке библиотек):
gcc -g -Wall -Wextra circuit.c -lSDL_gfx -lSDLmain -lSDL -o circuit
, и вам может потребоваться добавить другие параметры, особенноодин или несколько -I
include-dir и соответствующие -L
lib-dir flags;Точные параметры для добавления зависят от того, как вы установили свою библиотеку SDL (возможно, смотрите this ), которую вы, возможно, установили неправильно или странно.
Вы также можете передать -v
, чтобы понять, какие программы работает драйвер gcc
, и -H
, чтобы понять, какие файлы заголовков включены.
Точный список параметров gcc
может бытьспецифичная для системы.Иногда вы можете использовать pkg-config .И вы часто хотите запускать gcc
команды компиляции, используя какой-то инструмент автоматизации сборки , например, GNU make
(с Makefile
) или ninja
Изучите также для вдохновения исходный код существующего свободного программного обеспечения , связанного с вашим (например, на github ).
Кстати, если вы полностью новичок в C и вы хотите изучить программирование на C, вы можете сначала начать писать простые программы командной строки, которые зависят только от стандартной библиотеки C (поэтому не используйте SDL).Вам нужно будет научиться использовать gdb
отладчик .
Я скачал их библиотеку с их сайта и поместил в / Library / Framework (IЯ на OS X).
Это очень вероятно неправильно или не полностью.Вы должны дать намного больше подробностей.
Я проверил, и SDL sdl.h не выглядит ни в одном из ...
Это может означать, чтопакет разработки SDL (заголовочные файлы, включая sdl.h
) недоступен (отсутствует или был неправильно установлен).
Кстати, в большинстве дистрибутивов Linux следует установить оба пакета разработки (например, libsdl2-dev
и т.д. в Debian) и библиотеки времени выполнения (например, libsdl2-2.0-0
и т. д.).Это может быть то же самое с brew
.См это .