CodeBlocks minGW и image-base

Тема в разделе "WASM.WIN32", создана пользователем macrouser, 4 сен 2010.

  1. macrouser

    macrouser New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2010
    Сообщения:
    16
    доброго дня! никак немогу установить image base в CodeBlocks... вроде бы есть некая дериктива --image-base, вбиваю в доп. параметрах компилятора --image-base13140000 в Release, но PeID показывает 00400000... ЧЯДНТ?

    спасибо...
     
  2. ivan2k2

    ivan2k2 New Member

    Публикаций:
    0
    Регистрация:
    28 янв 2006
    Сообщения:
    95
    директива есть, но не для win, а для darwin(mac os)
     
  3. macrouser

    macrouser New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2010
    Сообщения:
    16
    а как тогда можно указать под Win?
     
  4. Microedition

    Microedition Active Member

    Публикаций:
    0
    Регистрация:
    5 июн 2008
    Сообщения:
    814
    macrouser
    --image-base - директива линкера (ld.exe).

    Пример: --image-base=0x00030000
     
  5. macrouser

    macrouser New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2010
    Сообщения:
    16
    ну я и прописываю в other linker options

    --image-base=0x14130000

    пробывал и --image-base=14130000 и --image-base0x14130000 и --image-base14130000 ни один из вариантов не заработал ):
     
  6. Microedition

    Microedition Active Member

    Публикаций:
    0
    Регистрация:
    5 июн 2008
    Сообщения:
    814
    macrouser
    Code::blocks на самом эти опции gcc. А надо ld.

    Т.е компиляция запускается так: gcc -o <project-name>.exe [еще какие-то опции] --image-base=0x00030000

    Судя по procmon-у, опция --image-base не доходит до ld.exe, когда тот вызывается в момент линковки gcc-ем.

    В общем, как это сделать из Code::blocks, я не знаю.
     
  7. macrouser

    macrouser New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2010
    Сообщения:
    16
    хмм... а как скомпилировать и слинковать вручную? спасибо заранее...
     
  8. r90

    r90 New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2005
    Сообщения:
    898
    CodeBlock, скорее всего вызывает ld неявно: вызывается gcc, который, в свою очередь, вызывает ld. А если так, то опции надо передавать используя -Wl:
    -Wl,--image-base=0x30000
     
  9. rat4

    rat4 Member

    Публикаций:
    0
    Регистрация:
    13 сен 2005
    Сообщения:
    30
    У Code::Blocks есть опция (настройки компилятора)->Other settings->Compiler logging: Full command line, чтобы не гадать что и как он вызывает :)
     
  10. macrouser

    macrouser New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2010
    Сообщения:
    16
    ничего не получилось, расскажите подробнее, как сие сделать ): я про -Wl:... это куда вписать нужно?
     
  11. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Ответ дал rat4 - надо это вписать в full command line - полная командная строка.