Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Qt Win] указать mingw слить секции data->text, наподобие /MERGE в msvc 
:(
    Опции темы
Softaz
Дата 4.8.2015, 07:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


wasm
**


Профиль
Группа: Участник
Сообщений: 373
Регистрация: 16.1.2006

Репутация: нет
Всего: 16



Здравствуйте!
Что-то застопорился.
В VS компилере можно прямо в файле добавить опции линкера 

Код

#pragma comment(linker,"/MERGE:.rdata=.text")


В MinGW такого, увы, нельзя. Однако, есть linker script и сделать это все-таки можно. Более того, тут пример для виндовс и еще один.
Расписано буквально по шагам. Однако, не получается. Пишет
Цитата

A:\plugin\testapp\ld_script.ld:-1: ошибка: file format not recognized; treating as linker script

То есть ругается на файл скрипта, что он не распознан.
В .pro файл добавил:
Код

win32-g++ {
QMAKE_LFLAGS += "A:/plugin/testapp/ld_script.ld" #пробывал с парамтером -T A:/...
}

и сам файл скрипта:
Код

SECTIONS
{
.text : { *(.text) *(.rdata) *(SORT(.rdata$*))
}

*добавлено:
пробовал подсовывать файл скрипта по умолчанию "ld --verbose > ld_script.ld" -- результат тот же.

mingw492_32/Qt 5.5

Есть идеи?

Это сообщение отредактировал(а) Softaz - 4.8.2015, 08:49


--------------------
Разочарованный в .NET
PM MAIL WWW   Вверх
Softaz
  Дата 4.8.2015, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


wasm
**


Профиль
Группа: Участник
Сообщений: 373
Регистрация: 16.1.2006

Репутация: нет
Всего: 16



Сделал чуть другое форматирование и с опцией -TA:/ld_script.x все скомпилировалось

Цитата

     SECTIONS
     {
     . = 0x1000;
       .text : {   *(.text)  *(.rdata)  *(SORT(.rdata$*)) }
     }

Однако, таблица вирт. адресов нафих съехала.
Было
Цитата

.text    0x1000    0x19d0    0x1a00    R-X CODE IDATA    
.data    0x3000    0x34    0x200    RW- IDATA    
.rdata    0x4000    0x6c0    0x800    R-- IDATA    
.eh_fram    0x5000    0x860    0xa00    R-- IDATA    
.bss    0x6000    0x414    0    RW- UDATA    
.idata    0x7000    0x640    0x800    RW- IDATA    
.CRT    0x8000    0x34    0x200    RW- IDATA    
.tls    0x9000    0x20    0x200    RW- IDATA


Стало
Цитата

.text    0xffc00000    0x2044    0x2200    R-X CODE IDATA    
.idata    0xffc00000    0x5d8    0x600    RW- IDATA    
.text.st    0xffc03000    0x30    0x200    R-X CODE    
.eh_fram    0xffc04000    0x860    0xa00    R-- IDATA    
.data    0xffc05000    0x30    0x200    RW- IDATA    
.CRT    0xffc06000    0x34    0x200    RW- IDATA    
.drectve    0xffc07000    0x138    0x200    RW- IDATA    
.jcr    0xffc08000    4    0x200    RW- IDATA    
.tls    0xffc09000    0x20    0x200    RW- IDATA    
.idata    0xffc0a000    0x54    0x200    RW- IDATA    
.ctors.6    0xffc0b000    4    0x200    RW- IDATA    
.bss    0xffc0c000    0x30    0    RW- UDATA

Так что теперь файл "не является приложением Win32".

Это сообщение отредактировал(а) Softaz - 4.8.2015, 09:52


--------------------
Разочарованный в .NET
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0576 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.