|
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
|
|
Можно ли как-то указать в Makefile, чтобы часть файлов компилировал компилятор C?05.11.2009, 12:19. Показов 10123. Ответов 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 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Рецензия / Мнение/ Перевод
Сайт называется reddit: The Thinkpad X220 Tablet is the best budget school laptop period.
Это. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|