|
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
|
|
Можно ли как-то указать в Makefile, чтобы часть файлов компилировал компилятор C?05.11.2009, 12:19. Показов 10255. Ответов 41
Я пробую программу Qt 4 Designer,и после всех настроек файла .ui я скопировал себе код интерфейса в программу,но она не компилируется- пишет,что стандарт C++ не поддерживает тип long long и указывает на один из typedef-ов в самой библиотеке.Вроде написано,что библиотека писалась на С++,я не понимаю,как так.Как можно выйти из положения,может,просто скомпилировать именно эти файлы компилятором Си? Или не получится?
0
|
|
| 05.11.2009, 12:19 | |
|
Ответы с готовыми решениями:
41
Как послать письмо из VB, так чтобы можно было вручную указать мыло отправителя? |
|
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
|
||||||
| 07.11.2009, 07:57 [ТС] | ||||||
|
Прочитал в вики:
А можно в Makefile как-то указать,чтобы одни файлы компилировались с одними флагами,а потом эти флаги убирались,и дальше компиляция продолжалась уже без них? Навроде раздельной компиляции.
0
|
||||||
|
|
|||
| 07.11.2009, 13:00 | |||
|
После установки семёрки у меня не встали виртуальные машины, а потому по ходу их переустанавливать придётся. Так что пока поэкспериментировать не на чем. Либо до понедельника и на работе Добавлено через 33 секунды
1
|
|||
|
|
||
| 07.11.2009, 13:59 | ||
|
1
|
||
|
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
|
|||
| 07.11.2009, 20:53 | |||
Так что можешь свою уверенность использовать по прямому назначению ![]() Кстати Qt 4.x не собирается на VS6. Из-за этого в свое время пришлось покупать VC++ 2003.Net. Добавлено через 7 минут
Все нужно клещами вытаскивать ...
1
|
|||
|
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
|
||||||
| 08.11.2009, 01:58 [ТС] | ||||||
|
Проблема всё ещё актуальна для меня,не хочется менять опции компиляции.У меня появилась такая идея:
Делаю интерфейс в виде отдельной библиотеки .so (как и было предложено ранее),причём у неё свой Makefile,компилируется отдельно,а потом её просто слинковать в общий файл.Так получится? Можно ли сделать что-то подобное в Makefile:
0
|
||||||
|
|
|||
| 08.11.2009, 02:28 | |||
![]()
В любом случае, мне приходится Qt не только устанавливать ![]() Добавлено через 3 минуты #pragma, Я вот только не понял, для чего ты указываешь -ansi ?
0
|
|||
|
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
|
||
| 08.11.2009, 02:47 [ТС] | ||
|
То есть я руководствуюсь правилом: если есть опция,ужесточающая контроль над кодом при компиляции,то я её включаю.
0
|
||
|
|
||||||
| 08.11.2009, 12:48 | ||||||
|
#pragma, делать отдельную динамическую библиотеку получится. ТОлько вот в флаге "-L/gui/lib/libgui.so" у тебя после буквы "L" слэш лишний, ибо с ним поиск будет весись в "/gui/lib/libgui.so" (т.е. от корневого каталога, а не текущего)
Сейчас ты в Makefile навалил какую-то одну большую общую кашу. Сборки динамической библиотеки, условно, делается так:
Далее встаёт вопрос с тем, как её использовать. Т.е. при линковке её подцеплятьстандартно через опции -L -l. Но в момент запуска приложения динамический загрузчик должен будет найти эту библиотеку. А поиск ведётся только по стандартным путям (а тебе надо, чтобы библиотека подцепилась откуда-то рядышком с бинарником). Есть разные способы это сделать, но все они сводятся к тому, что нужно задавать некий абсолютный путь до каталога, где лежит динамическая библиотека. Нормальных общих вариантов для решения этой проблемы нет, а потому если программа устанавливается НЕ в стандартные каталоги, то обычно с программой поставляется скрипт, который устанавливает переменную окружения LD_LIBRARY_PATH и запускает программу niXman, в 29-м посту я тебе всё объяснил. Книжка по Си не поможет. Например, ты напишешь код "x = (a>b) ? : y;" и из-под gcc он будет работать. ОТкуда ты узнаешь, что с точки зрения стандартного Си этот код некорректен? Предлагаешь на каждую строку кода лезть в книжку и проверять, правильно это или нет?
2
|
||||||
|
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
|
||
| 09.11.2009, 05:39 [ТС] | ||
|
http://www.prefetch.net/articl... brary.html Правда там всё на английском,и хотя читаю неплохо,многие моменты не понятны из-за специфики/незнания темы.Но как я понял,там этот способ осуждают и предлагают альтернативный(и вроде бы более действенный). В-общем надо будет придумать какой-то универсальный скрипт,и желательно,чтобы это не требовало полномочий суперпользователя.Лишний раз sudo вводить напрягает новичков. Добавлено через 1 час 25 минут Ой я даже много доводов против этого нашёл,достаточно задать гуглу вопрос: почему опция X это плохо? http://www.xahlee.org/UnixReso... dpath.html Я так понял в последних версиях линкера добавили специальную опцию -R,указывающую где искать библиотеку в runtime,но я так примерно понял,может,ошибся.
0
|
||
|
|
|
| 09.11.2009, 09:06 | |
|
Опция -R (или, что более характерно для gcc/gld опция -Wl,-rpath=) - это добавление каталога в путь поиска динамических библиотек. Требует подстановки АБСОЛЮТНОГО пути. Т.е. после этого у тебя программа становится привязанной к конкретному месту. Вариант в LD_LIBRARY_PATH более гибкий. Opera, например пошла по тому же пути со скриптом - скрит в run-time определяет своё местоположение, выставляет переменные окружения, после чего запускает бинарник.
Тебе для твоих целей для начала сойдёт и вариант -R. (-Wl,-rpath=.) - в этом случае тебе придётся держать динамические библиотеки в текущем каталоге (либо во внутреннм, но тогда в опцию -R подавай относительный путь). В этом случае бинарник у тебя будет нормально запускаться только из текущего каталога, но хоть поймёшь, как с динамическими библиотеками работать
1
|
|
|
|
||||||||||||
| 09.11.2009, 12:56 | ||||||||||||
|
В ревизии 52 я внёс следующую правку в Makefile Вместо
1
|
||||||||||||
|
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
|
|||||||||||
| 11.11.2009, 05:43 [ТС] | |||||||||||
|
Пробую скомпилировать,пришлось сначала запускать qmake,она сгенерила Makefile,я его немного поправил,вроде всё верно?
Заголовок Makefile
Но почему-то получаю ошибки: Ошибки
Как будто линкер эту библиотеку не видит.
0
|
|||||||||||
|
|
|
| 11.11.2009, 09:42 | |
|
В -Wl,-rpath= и -L надо подавать пути до КАТАЛОГА, где лежит файл, а в -l - по сути имя библиотеки (без начинающего "lib" и завершающего суффикса). Т.е. правильно будет -Wl,-rpath=libgui -Llibgui -lgui
1
|
|
| 11.11.2009, 09:42 | |
|
Помогаю со студенческими работами здесь
40
Можно ли как то в Embarcadero RAD Studio XE6 указать структуру файлов скомпилированого проекта
Можно ли как нибудь явно указать тип переменной, чтобы ИДЕ рассказала мне все что я хочу знать об объекте? Как в этом Makefile указать опцию для сбора информации для дебагинга? Как в makefile сделать чтобы проект собирался из директории src Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|