|
Практикантроп
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
|
Pragma link - что за зверь и для чего нужно?24.06.2015, 12:52. Показов 10461. Ответов 15
Метки нет (Все метки)
Обычно, когда добавляешь к проекту сторонний компонент, то в тексте юнита появляется запись наподобие
#pragma link "имя_компонента". Если я в дальнейшем правильно указывал в свойствах проекта путь к файлам .hpp и .obj этого компонента, то почти всегда эту строчку (pragma link ...) можно было безболезненно удалять; линковщик справлялся со своей задачей. Но вот попробовал с "библиотечкой" pngimage проделать то же - и в итоге линковщик ругается на PNGImage (unresolved external от obj-файла). Хотя все пути для него в свойствах прописаны. Стоит эту строку раскомментировать - и всё ОК, - ошибок нет. Вот меня и заинтересовало, - что это за указание линковщику? на что влияет? Может кто-нибудь простыми словами объяснить?
0
|
|
| 24.06.2015, 12:52 | |
|
Ответы с готовыми решениями:
15
Нужно описание исходного кода скринсейвера, т.е. где что происходит, что чему и для чего присваивается и т.д
Что такое событие, для чего оно нужно |
|
Супер-модератор
|
|
| 24.06.2015, 14:47 | |
|
Лучше документации: #pragma link вряд ли. Какие именно из приведенных там слов не являются простыми?
1
|
|
|
Практикантроп
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
||
| 24.06.2015, 15:08 [ТС] | ||
![]() И вообще... - надо было в своё время не английский усиленно изучать, а их к русскому приучать; больше бы толку было. А английский язык оставить, конечно, как язык "понятий" (для программирования удобно, кстати).
1
|
||
|
Супер-модератор
|
||
| 24.06.2015, 15:20 | ||
|
0
|
||
|
Практикантроп
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
||
| 24.06.2015, 15:48 [ТС] | ||
|
1
|
||
|
управление сложностью
|
||
| 24.06.2015, 16:20 | ||
|
0
|
||
|
Практикантроп
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
||
| 24.06.2015, 16:50 [ТС] | ||
|
Ну, и немного о бренном: я просто хочу понять, что то, что меня заинтересовало, не ошибка платформы Билдера. Потому что строчкой pragma link nameobjectfile я не даю линковщику ни дополнительного пути к obj-файлам, ни незнакомого имени (это имя и так прописано в hpp-файле)... . Получается - те пути, что прописаны в свойствах проекта как Library Path, написаны зря и линковщику "до лампочки"?
0
|
||
|
|
|||
| 24.06.2015, 18:34 | |||
|
Добавлено через 4 минуты .Язык становится востребован носители которого производят и покупают. А те кто ничего не производят и ничего не покупают в пролете. Добавлено через 6 минут Более того если вы не требуете как покупатель доку на своем языке никто ее вам не предоставит.
0
|
|||
|
Практикантроп
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
|
| 25.06.2015, 09:31 [ТС] | |
|
Аллё! теоретики!... Вопрос был о другом. Всех желающих подискутировать на темы лингвистики отсылаю к блогам Тима Керби (такой себе обозреватель RussiaToday; в своем же отечестве, как известно, пророков нет...), хотя бы его "Русский язык против английского — как Apple против Windows". Меня по прежнему интересует суть вышеозначенной строки (#pragma link ...) и ее влияние на процедуру линковки. Ссылка уважаемого volvo трактует её (в не моём переводе) ... <Директива #pragma link поручает линкеру связать указанный файл в исполняемый файл>. Мне такие простые слова ничего не прояснили.
Если я пакетом оформляю эти 4 паскалевых файла в библиотеку lib и она, разумеется, попадает в файл -bpr проекта, то линковщик всё нормально "связывает" и та строчка ему не нужна. Если же библиотека не подключена, но имеются файлы -obj, то без pragma link "связывания" не происходит. Почему? Чего я в упор не вижу?
0
|
|
|
236 / 196 / 21
Регистрация: 04.06.2014
Сообщений: 1,309
|
|
| 25.06.2015, 09:42 | |
|
0
|
|
|
Практикантроп
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
||
| 25.06.2015, 10:02 [ТС] | ||
|
Эта вся непонятная чехарда относится пока к единственному компоненту: PNGButton (комплект pngimage из четырёх файлов: pngextra,pngimage,pnglang,zlibpas). Если я не подключаю этот компонент, а просто добавляю в unit.h строки включения #include "pngimage.hpp", #include "pngextra.hpp" и в свойствах Directories - Library Path указываю путь к файлам .obj (да даже размещаю их рядом с проектом...), то без строчки #pragma link "pngextra" этот проект не собирается. С использованием других компонентов аналогичным образом подобного не происходит (за все компоненты, естественно, не поручусь).
0
|
||
|
Практикантроп
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
|
| 25.06.2015, 11:56 [ТС] | |
|
ОК. Я немного остыл и обратил внимание, что обычно библиотеки я вручную добавляю к проекту; попробовал также вручную добавить pngextra.obj & pngimage.obj - и линковщику этого хватило. Видимо, самостоятельно он искать объектные файлы не приучен. Пока придется удовлетвориться таким объяснением.
0
|
|
|
|
||||||
| 25.06.2015, 11:59 | ||||||
|
Так никакой не научен, чЁ и говорю стоит хотя бы попробовать собирать простинкий проект в консоли с мейк файлами итп что бы не возникали такие вопросы.
Тоже самое
0
|
||||||
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
|||||
| 28.06.2015, 23:22 | |||||
|
Кстати, сгенерируй makefile для проекта и глянь на него.
2
|
|||||
| 28.06.2015, 23:22 | |
|
Помогаю со студенческими работами здесь
16
1С.Программирование: для чего нужно? что необходимо знать? Разработка приложений для Андроид. С чего начать? Что нужно изучить?
Oscillator Circuits / Clock Generation - что это и для чего нужно? Что такое HT Link(Hypertransport), от чего он зависит ? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита, которое может. . .
|
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
На примере нетипового документа разработанного в конфигурации КА2.
В качестве источника данных указан регистр накопления, в который записываются данные о. . .
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
|
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-text-sdl3-c. zip
finish-text-sdl3-cpp. zip
|