logo
Литература_1 / photon_old

Компилирование и линковка неPhAb'овского приложения

Чтобы скомпилировать и запустить на исполнение приложение, которое использует библиотеку виджетов Photon'а, Вы должны подлинковаться к главной библиотеке Photon'а ph и к библиотеке отображения phrender. Существует статическая и совместно используемая версии этих библиотек.

Библиотека photon предназначена только для приложений, созданных в версии 1.14 микроGUI Photon'а. Не комбинируйте эту библиотеку с текущими библиотеками или заголовочными файлами, в противном случае Ваше приложение будет исполняться неверно.

Мы рекомендуем, чтобы Вы всегда подлинковывались к библиотеке совместного доступа. Это позволит Вам иметь приложение меньшим по размеру и позволит ему наследовать новые возможности, добавляемые к библиотеке виджетов при инсталяции новых реализаций библиотеки совместного доступа.

Библиотека Photon'а включает часть функций и определений виджетов. Если Ваше приложение использует функции Al (переводные) или Px (расширенные), Вам также понадобится подлинковаться к библиотеке phexlib. Если ваше приложение использует функции Ap (PhAB'овские), Вам также надо подлинковаться к библитеке Ар. Имена статических и совместно используемых библиотек одни и те же. По умолчанию qcc линкуется с библиотеками совместного доступа; чтобы линковаться со статическими библиотеками, задайте для qcc опцию Bstatic.

Например, если у Вас есть приложение по имени hello.c, командой на компилирование и линковку с библиотекой совместного доступа является:

qcc -o hello hello.c -lph -lphrender

Чтобы подлинковать статические библиотеки, команда должна быть такой:

qcc -o hello hello.c -Bstatic -lph -lphrender

 Совместно используемая библиотека ph не включает ничего, что требует операций с плавающей запятой (в текущей версии именно виджет PtNumericFloat), в то время как статическая библиотека включает. Чтобы слинковать приложение, включающее виджет PtNumericFloat, Вы можете линковать его только со статической библиотекой или сделать так:

qcc -o hello hello.c lph -Bstatic -lph -Bdynamic -lphrender

Yandex.RTB R-A-252273-3
Yandex.RTB R-A-252273-4