Вручную выполнение изменений SQL и дампа/перезагрузки является оба опциями, но можно также хотеть проверить некоторые пакеты эволюции схемы для Django. Самые зрелые опции django-эволюция и Юг .
РЕДАКТИРОВАНИЕ : И эй, здесь прибывает dmigrations.
ОБНОВЛЕНИЕ : Так как этот ответ был первоначально записан, django-эволюция и , dmigrations и прекратил активную разработку и , Юг стал фактическим стандартом для миграции схемы в Django. Части Юга могут даже быть интегрированы в Django в рамках следующего выпуска или два.
ОБНОВЛЕНИЕ : платформа миграций схемы на основе Юга (и созданный Andrew Godwin, автором Юга) включена в Django 1.7 +.
Делаете это под окнами (предположим, что вы пользуетесь Visual Studio)
После распаковки добавьте каталоги include библиотеки в настройки ваших проектов (Проект -> Свойства -> C / C ++ -> Дополнительные каталоги включения)
Сделайте то же самое для каталога библиотек (Проект -> Свойства -> Компоновщик -> Дополнительные каталоги библиотек)
Укажите имя библиотеки в вашем Linker Input: Project -> Properties -> Linker -> Input -> Additional Dependencies
Надеюсь, после этого все должно скомпилироваться.
Я не рекомендую добавлять каталоги, указанные выше, в глобальные настройки в Visual Studio (Инструменты - >
Вы должны линковать .lib или что-то подобное, то есть добавить «.lib» в библиотеки, читаемые компоновщиком. По крайней мере, так это работает в Linux ... Я давно не работал с Windows.
.lib содержит символы для данных / функций внутри разделяемой библиотеки .dll.
Вот краткое руководство по тому, что происходит, когда вы компилируете и строите базовый проект C:
На первом этапе компилируются все ваши исходные файлы - это берет исходные файлы, которые вы написали, и переводит их в так называемые объектные файлы . На этом этапе компилятору необходимо знать объявление всех функций, которые вы используете в своем коде, даже во внешних библиотеках, поэтому вам нужно использовать #include
для включения файлов заголовков любых библиотек, которые вы используете. Это также означает, что вам необходимо сообщить компилятору расположение этих файлов заголовков. С GCC вы можете использовать командную строку -I
для ввода каталогов, в которых будет производиться поиск файлов заголовков.
Следующим этапом является объединение всех объектных файлов в один исполняемый файл . На этом этапе компоновщик должен разрешить вызовы внешних библиотек. Это означает, что вам нужна библиотека в объектной форме. Большинство библиотек дадут вам инструкции о том, как его создать, или могут предоставить его в готовом виде. В Linux файл библиотеки часто представляет собой файл .a
или .so
, хотя это может быть просто .o
. Опять же, вы можете передать местоположение объектного файла библиотеки в GCC с параметром -L.
Таким образом, ваша командная строка будет выглядеть так:
gcc myProg.c -I/path/to/libpng/include -L/path/to/libpng/lib -lpng -o myProg.exe
(Обратите внимание, что при использовании командной строки -l
GCC автоматически добавляет lib
в начало библиотеки, так что -lpng
приводит к связыванию libpng.a
.)
Надеюсь, это поможет.
Это означает, что вам нужна библиотека в объектной форме. Большинство библиотек дадут вам инструкции о том, как его создать, или могут предоставить его в готовом виде. Под Linux файл библиотеки часто представляет собой файл .a
или .so
, хотя это может быть просто файл .o
. Опять же, вы можете передать местоположение объектного файла библиотеки в GCC с параметром -L.
Таким образом, ваша командная строка будет выглядеть так:
gcc myProg.c -I/path/to/libpng/include -L/path/to/libpng/lib -lpng -o myProg.exe
(Обратите внимание, что при использовании командной строки -l
GCC автоматически добавляет lib
в начало библиотеки, так что -lpng
приводит к связыванию libpng.a
.)
Надеюсь, это поможет.
Это означает, что вам нужна библиотека в объектной форме. Большинство библиотек дадут вам инструкции о том, как его создать, или могут предоставить его в готовом виде. Под Linux файл библиотеки часто представляет собой файл .a
или .so
, хотя это может быть просто файл .o
. Опять же, вы можете передать местоположение объектного файла библиотеки в GCC с параметром -L.
Таким образом, ваша командная строка будет выглядеть так:
gcc myProg.c -I/path/to/libpng/include -L/path/to/libpng/lib -lpng -o myProg.exe
(Обратите внимание, что при использовании командной строки -l
GCC автоматически добавляет lib
в начало библиотеки, поэтому -lpng
приводит к связыванию libpng.a
.)
Надеюсь, это поможет.
В Linux файл библиотеки часто представляет собой файл .a
или .so
, хотя это может быть просто .o
. Опять же, вы можете передать местоположение объектного файла библиотеки в GCC с параметром -L.
Таким образом, ваша командная строка будет выглядеть так:
gcc myProg.c -I/path/to/libpng/include -L/path/to/libpng/lib -lpng -o myProg.exe
(Обратите внимание, что при использовании командной строки -l
GCC автоматически добавляет lib
в начало библиотеки, так что -lpng
приводит к связыванию libpng.a
.)
Надеюсь, это поможет.
Под Linux файл библиотеки часто представляет собой файл .a
или .so
, хотя это может быть просто файл .o
. Опять же, вы можете передать местоположение объектного файла библиотеки в GCC с параметром -L.
Таким образом, ваша командная строка будет выглядеть так:
gcc myProg.c -I/path/to/libpng/include -L/path/to/libpng/lib -lpng -o myProg.exe
(Обратите внимание, что при использовании командной строки -l
GCC автоматически добавляет lib
в начало библиотеки, поэтому -lpng
приводит к связыванию libpng.a
.)
Надеюсь, это поможет.
Это зависит от библиотеки. Например, некоторые библиотеки содержат предварительно скомпилированные двоичные файлы (например, dll), а другие вам необходимо скомпилировать их самостоятельно. Вам лучше посмотреть документацию к библиотеке.
В основном, для компиляции вы должны:
(1) указать местоположение файла библиотеки (.h) в пути включения компилятора,
(2) иметь расположение заглушек библиотеки (.lib) в пути к библиотеке компоновщика, и чтобы компоновщик ссылался на соответствующий файл библиотеки.
Чтобы запустить программу, вам необходимо иметь разделяемые библиотеки (dll), где загрузчик может их увидеть, например, в вашем каталоге system32.
Есть два типа библиотек: статические и динамические (или совместно используемые).
Статические библиотеки имеют объектный формат, и вы связываете их непосредственно в своем приложении.
Общие или динамические библиотеки находятся в отдельном файле (.dll или .so), который должен присутствовать во время запуска вашего приложения. Они также поставляются с объектными файлами, которые вы должны связать с вашим приложением, но в этом случае они не содержат ничего, кроме заглушек, которые находят и вызывают исполняемый двоичный файл (.dll или .so).
В любом случае вы должны иметь некоторые файлы заголовков, содержащие подписи (объявления) библиотечных функций, иначе ваш код не будет компилироваться.
Некоторые «библиотеки» предназначены только для заголовков, и вам не нужно ничего делать, кроме их включения. Некоторые состоят из заголовочных и исходных файлов.
Также,
вы можете просмотреть поддержку динамической загрузки на разных языках и на разных
платформы.
Эта поддержка очень удобна в случаях, когда вы хотите использовать библиотеку по желанию и не хотите, чтобы ваша программа завершилась ошибкой, если эта библиотека недоступна.
Когда вы компилируете, предполагая, что у вас есть библиотеки и заголовки в той же папке, что и исходные тексты, которые вы компилируете, вам нужно добавить в вашу компиляцию строку -L. -I. -lpng
. -L сообщает компоновщику, где искать библиотеку, -I сообщает компилятору, где искать заголовки, а -lpng указывает компоновщику связываться с библиотекой png.
[Изменить]
Обычные проекты будут иметь своего рода иерархию, в которой заголовки находятся в папке / include
, а сторонние библиотеки - в папке / libs
. В этом случае вы должны поместить -I ./include
и -L ./libs
вместо -I.
и -L.
[Edit2] Большинство проектов используют make-файл для компиляции из командной строки. Вы можете скомпилировать вручную только небольшое количество файлов, после этого все становится очень беспокойно