173
Ауыспалы шеңберлер командалық жолдың компиляторымен
жұмысын жеңілдету үшін де қолданылуы мүмкін. Осылайша, әр түрлі
каталогтарда (мысалы, кейінге қалған ақпаратты құрайтын немесе
құрамайтын кітапханалар) орналасқан бірдей атаулы кітапханалардың
жинағын пайдаланумен, бағдарламалардың компиляциялау қажеттілігі
туындаса онда кітапханаларға жолды ауыспалы шеңберге (мысалы,
MY_LIB) ауыстыруға болады және ағымдағы қажеттілікке байланысты
шеңберлердің ауыспалыларының мәндерін ауыстыруға болады.
Компиляторды шақыру осылай көрініс табады:
gcc -dynamic -o myprogram -L${MY_LIB} myprogram.c
Жоғарыда қарастырылған барлық бағдарлама құрастыру және
компиляциялау тәсілдері пайдаланушыдан құрастыру кезеңдерін
жасырады — обьективті файлдар орындалатын файлдың пайда
болуынан кейін бірден өшіріледі және пайдаланушы обьективті
файлды көрместен, орындалатын файлды қабылдап отырды.
Кейбір жағдайларда екі кезең— обьективті файлдарды сақтай
отырып, құрастыру мен құрастырмалау орындалады. Мысалы, кейбір
кітапханалар шығыстық мәтінсіз объективті файл түрінде ұсынылады.
Мұндай кітапханаларды пайдаланушы бағдарламаларды құрастыру
үшін алдымен өз бағдарламасының объективті файлын алу қажет,
содан кейін барлық (өзінің және кітапханалық) объективті файлдарды
орындалатын файлға жинау керек.
Объективті файлды алу үшін компилятордың -c кілті қолданылады.
Осылайша,
команда
gcc -c myfilel.c myfile2.c -I/usr/local/include
файлдар компиляциясын myfile1.c и myfile2.c шақырады және
олардың нәтижелері myfile1.o и myfile2.o обьективті файлдарында
сақталады. Компиляцияға қажетті тақырыптық файлдарды іздеу -
/usr/local/include каталогында жүреді.
Обьективтіге жиналған орындалатын файлдарды алу үшін оған
обьективті файлдарды параметр ретінде жіберу арқылы, компиляторды
шақыру жеткілікті. Компилятор файлдар бағдарламаның шығыстық
мәтіні еместігін таниды, және оны құрастырушыға өңдеуге жібереді.
Осылайша, команда
gcc -shared -o myprogram -L/usr/local/lib -lm myfilel.o
myfile2.o
myfile 1 .o и myfile2.o. обьективті файлдарының ішінен myprogram
бағдарламасының жинағын шақырады. Сонымен қатар орындалатын
файлда libm.so динамикалық кітапханалық функцияларының шақыру
175
120 параметрімен іске асырылған, мұндай тапсырмаларды экранға
шығару осылай көрінеді:
Hundredths of sine of angle 120 equals 86
Достарыңызбен бөлісу: