То: Attid
Спасибо, добавил ключ –FU. Так действительно более кошерно :)
To: Sergei I. Gorelkin
Спасибо за такой развернутый ответ, но...
1) gorc.exe автоматически не подхватывается. Запустив ppcrossx64.exe с ключом –va ничего не нашел (результат работы ppcrossx64.exe –va приведу далее).
2) В проекте только один res файл. Ресурс MESSAGETABLE для правильного отображения сообщений в EventLog NT от приложения. Поэтому, может быть, это волюнтаризм, но для меня имя 'fpc-res' вполне подходит.
3) Зачем две раза вызывать gorc? Если он сам пишет
If the inputfile is RC, then by default, both RES and OBJ files are created.
4) У меня вроде последняя версия FPC – 2.2.0, о более новых версиях я не слышал.
ppcrossx64.exe имеет ключи
-Fc<x> sets input codepage to <x>
-Fr<x> load error message file <x>
Но это явно не то…
5) {$R 'exmess.res' 'exmess.rc'} – это моя ошибка. Нужно либо 'exmess.res' либо 'exmess.rc', но что интересно, Delphi, Lazarus 0.9.24 для Win32 на WinXP(32bit), Lazarus 0.9.24 для Win64 на Win2003(64bit) успешно компилируют данную сточку.
В принципе, главного я достиг – я могу компилировать свой проект, но интересно, как правильно настроить FPC, что бы он сам подхватывал gorc.
результат работы ppcrossx64.exe –va
- Код: Выделить всё
[0.000] Macro defined: WIN64
[0.000] Macro defined: FPC
[0.000] Macro defined: VER2
[0.000] Macro defined: VER2_2
[0.000] Macro defined: VER2_2_0
[0.000] Macro defined: FPC_DARWIN_PASCALMAIN
[0.000] Macro defined: FPC_DARWIN_JMP_MAIN
[0.000] Macro defined: COMPPROCINLINEFIXED
[0.000] Macro defined: PARAOUTFILE
[0.000] Macro defined: RESSTRSECTIONS
[0.000] Macro defined: FPC_HASFIXED64BITVARIANT
[0.000] Macro defined: FPC_HASINTERNALOLEVARIANT2VARIANTCAST
[0.000] Macro defined: FPC_HAS_VARSETS
[0.000] Macro defined: FPC_HAS_VALGRINDBOOL
[0.000] Macro defined: FPC_HAS_STR_CURRENCY
[0.000] Macro defined: FPC_REAL2REAL_FIXED
[0.000] Macro defined: FPC_STRTOCHARARRAYPROC
[0.000] Macro defined: FPC_SUPPORTS_UNALIGNED
[0.000] Macro defined: INTERNAL_BACKTRACE
[0.000] Macro defined: STR_CONCAT_PROCS
[0.000] Macro defined: REGCALL
[0.000] Macro defined: FPC_HAS_FEATURE_SUPPORT
[0.000] Macro defined: CPUX86_64
[0.000] Macro defined: CPUAMD64
[0.000] Macro defined: CPU64
[0.000] Macro defined: FPC_CURRENCY_IS_INT64
[0.000] Macro defined: FPC_COMP_IS_INT64
[0.000] Macro defined: FPC_HAS_TYPE_DOUBLE
[0.000] Macro defined: FPC_HAS_TYPE_SINGLE
[0.000] Macro defined: FPC_CROSSCOMPILING
[0.000] Macro defined: FPC_CPUCROSSCOMPILING
[0.000] Macro defined: FPC_WINLIKEWIDESTRING
[0.000] Reading options from file fpc.cfg
[0.000] Start of reading config file fpc.cfg
[0.000] interpreting file option "#"
[0.000] interpreting file option "# Config file generated by fpcmkcfg on 26.12.2007 - 10:54:04"
[0.000] interpreting file option "# Example fpc.cfg for Free Pascal Compiler"
[0.000] interpreting file option "#"
[0.000] interpreting file option "# ----------------------"
[0.000] interpreting file option "# Defines (preprocessor)"
[0.000] interpreting file option "# ----------------------"
[0.000] interpreting file option "#"
[0.000] interpreting file option "# nested #IFNDEF, #IFDEF, #ENDIF, #ELSE, #DEFINE, #UNDEF are allowed"
[0.000] interpreting file option "#"
[0.000] interpreting file option "# -d is the same as #DEFINE"
[0.000] interpreting file option "# -u is the same as #UNDEF"
[0.000] interpreting file option "#"
[0.000] interpreting file option "#"
[0.000] interpreting file option "# Some examples (for switches see below, and the -? helppages)"
[0.000] interpreting file option "#"
[0.000] interpreting file option "# Try compiling with the -dRELEASE or -dDEBUG on the commandline"
[0.000] interpreting file option "#"
[0.000] interpreting file option "# For a release compile with optimizes and strip debuginfo"
[0.000] interpreting file option "#IFDEF RELEASE"
[0.000] interpreting file option "#WRITE Compiling Release Version"
[0.000] interpreting file option "#ENDIF"
[0.000] interpreting file option "# For a debug version compile with debuginfo and all codegeneration checks on"
[0.000] interpreting file option "#IFDEF DEBUG"
[0.000] interpreting file option "#WRITE Compiling Debug Version"
[0.000] interpreting file option "#ENDIF"
[0.000] interpreting file option "# ----------------"
[0.000] interpreting file option "# Parsing switches"
[0.000] interpreting file option "# ----------------"
[0.000] interpreting file option "# Pascal language mode"
[0.000] interpreting file option "# -Mfpc free pascal dialect (default)"
[0.000] interpreting file option "# -Mobjfpc switch some Delphi 2 extensions on"
[0.000] interpreting file option "# -Mdelphi tries to be Delphi compatible"
[0.000] interpreting file option "# -Mtp tries to be TP/BP 7.0 compatible"
[0.000] interpreting file option "# -Mgpc tries to be gpc compatible"
[0.000] interpreting file option "# -Mmacpas tries to be compatible to the macintosh pascal dialects"
[0.000] interpreting file option "#"
[0.000] interpreting file option "# Turn on Object Pascal extensions by default"
[0.000] interpreting file option "#-Mobjfpc"
[0.000] interpreting file option "# Assembler reader mode"
[0.000] interpreting file option "# -Rdefault use default assembler"
[0.000] interpreting file option "# -Ratt read AT&T style assembler"
[0.000] interpreting file option "# -Rintel read Intel style assembler"
[0.000] interpreting file option "#"
[0.000] interpreting file option "# All assembler blocks are AT&T styled by default"
[0.000] interpreting file option "#-Ratt"
[0.000] interpreting file option "# Semantic checking"
[0.000] interpreting file option "# -S2 same as -Mobjfpc"
[0.000] interpreting file option "# -Sc supports operators like C (*=,+=,/= and -=)"
[0.000] interpreting file option "# -Sa include assertion code."
[0.000] interpreting file option "# -Sd same as -Mdelphi"
[0.000] interpreting file option "# -Se<x> compiler stops after the <x> errors (default is 1)"
[0.000] interpreting file option "# -Sg allow LABEL and GOTO"
[0.000] interpreting file option "# -Sh Use ansistrings"
[0.000] interpreting file option "# -Si support C++ styled INLINE"
[0.000] interpreting file option "# -SI<x> set interface style to <x>"
[0.000] interpreting file option "# -SIcomCOM compatible interface (default)"
[0.000] interpreting file option "# -SIcorbaCORBA compatible interface"
[0.000] interpreting file option "# -Sm support macros like C (global)"
[0.000] interpreting file option "# -So same as -Mtp"
[0.000] interpreting file option "# -Sp same as -Mgpc"
[0.000] interpreting file option "# -Ss constructor name must be init (destructor must be done)"
[0.000] interpreting file option "# -St allow static keyword in objects"
[0.000] interpreting file option "#"
[0.000] interpreting file option "# Allow goto, inline, C-operators, C-vars"
[0.000] Handling option "-Sgic"
[0.000] interpreting option "-Sgic"
[0.000] interpreting file option "# ---------------"
[0.000] interpreting file option "# Code generation"
[0.000] interpreting file option "# ---------------"
[0.000] interpreting file option "# Uncomment the next line if you always want static/dynamic units by default"
[0.000] interpreting file option "# (can be overruled with -CD, -CS at the commandline)"
[0.000] interpreting file option "#-CS"
[0.000] interpreting file option "#-CD"
[0.000] interpreting file option "# Set the default heapsize to 8Mb"
[0.000] interpreting file option "#-Ch8000000"
[0.000] interpreting file option "# Set default codegeneration checks (iocheck, overflow, range, stack)"
[0.000] interpreting file option "#-Ci"
[0.000] interpreting file option "#-Co"
[0.000] interpreting file option "#-Cr"
[0.000] interpreting file option "#-Ct"
[0.000] interpreting file option "# Optimizer switches for i386 compiler"
[0.000] interpreting file option "# -Os generate smaller code"
[0.000] interpreting file option "# -O1 level 1 optimizations (quick optimizations)"
[0.000] interpreting file option "# -O2 level 2 optimizations (-O1 + slower optimizations)"
[0.000] interpreting file option "# -O3 level 3 optimizations (same as -O2u)"
[0.000] interpreting file option "# -Oa=N set alignment to N"
[0.000] interpreting file option "# -OoX switch on optimalization X."
[0.000] interpreting file option "# -OoNOX switch off optimalization X."
[0.000] interpreting file option "# X is one of REGVAR UNCERTAIN STACKFRAME PEEPHOLE ASMCSE LOOPUNROLL"
[0.000] interpreting file option "# -OpCPU set target processor."
[0.000] interpreting file option "# CPU is one of 386, PENTIUM, PENTIUM2, PENTIUM3, PENTIUM4, PENTIUMM"
[0.000] interpreting file option "# -----------------------"
[0.000] interpreting file option "# Set Filenames and Paths"
[0.000] interpreting file option "# -----------------------"
[0.000] interpreting file option "# Both slashes and backslashes are allowed in paths"
[0.000] interpreting file option "# path to the messagefile, not necessary anymore but can be used to override"
[0.000] interpreting file option "# the default language"
[0.000] interpreting file option "#-Frc:\lazarus\fpc\2.2.0/msg/errore.msg"
[0.000] interpreting file option "#-Frc:\lazarus\fpc\2.2.0/msg/errorn.msg"
[0.000] interpreting file option "#-Frc:\lazarus\fpc\2.2.0/msg/errores.msg"
[0.000] interpreting file option "#-Frc:\lazarus\fpc\2.2.0/msg/errord.msg"
[0.000] interpreting file option "#-Frc:\lazarus\fpc\2.2.0/msg/errorr.msg"
[0.000] interpreting file option "# path to the gcclib"
[0.000] interpreting file option "#-Flc:\lazarus\fpc\2.2.0/lib"
[0.000] interpreting file option "# searchpath for includefiles"
[0.000] interpreting file option "#-Fi/pp/inc;/pp/rtl/inc"
[0.000] interpreting file option "# searchpath for includefiles"
[0.000] interpreting file option "# release them only if you know what you do"
[0.000] interpreting file option "# because this could cause a rebuild of the runtime library"
[0.000] interpreting file option "# if you tell them compiler/ide to build the project (FK)"
[0.000] interpreting file option "#-Fic:\lazarus\fpc\2.2.0/source/rtl/inc;c:\lazarus\fpc\2.2.0/source/rtl/i386"
[0.000] interpreting file option "# searchpath for objectfiles"
[0.000] interpreting file option "#-Foc:\lazarus\fpc\2.2.0/source/rtl/inc;c:\lazarus\fpc\2.2.0/source/rtl/i386"
[0.000] interpreting file option "# searchpath for units and other system dependent things"
[0.000] Handling option "-Fuc:\lazarus\fpc\2.2.0/units/x86_64-win64/"
[0.000] interpreting option "-Fuc:\lazarus\fpc\2.2.0/units/x86_64-win64/"
[0.000] Handling option "-Fuc:\lazarus\fpc\2.2.0/units/x86_64-win64/*"
[0.000] interpreting option "-Fuc:\lazarus\fpc\2.2.0/units/x86_64-win64/*"
[0.000] Handling option "-Fuc:\lazarus\fpc\2.2.0/units/x86_64-win64/rtl"
[0.000] interpreting option "-Fuc:\lazarus\fpc\2.2.0/units/x86_64-win64/rtl"
[0.000] interpreting file option "# searchpath for libraries"
[0.000] interpreting file option "#-Flc:\lazarus\fpc\2.2.0/lib"
[0.000] interpreting file option "#-Fl/lib;/usr/lib"
[0.000] interpreting file option "# searchpath for tools"
[0.000] Handling option "-FDc:\lazarus\fpc\2.2.0/bin/x86_64-win64"
[0.000] interpreting option "-FDc:\lazarus\fpc\2.2.0/bin/x86_64-win64"
[0.000] interpreting file option "# binutils prefix for cross compiling"
[0.000] interpreting file option "#IFDEF FPC_CROSSCOMPILING"
[0.000] Handling option "-XPx86_64-win64-"
[0.000] interpreting option "-XPx86_64-win64-"
[0.000] interpreting file option "#ENDIF"
[0.000] interpreting file option "# -------------"
[0.000] interpreting file option "# Linking"
[0.000] interpreting file option "# -------------"
[0.000] interpreting file option "# generate always debugging information for GDB (slows down the compiling"
[0.000] interpreting file option "# process)"
[0.000] interpreting file option "# -gc generate checks for pointers"
[0.000] interpreting file option "# -gd use dbx"
[0.000] interpreting file option "# -gg use gsym"
[0.000] interpreting file option "# -gh use heap trace unit (for memory leak debugging)"
[0.000] interpreting file option "# -gl use line info unit to show more info for backtraces"
[0.000] interpreting file option "# -gv generates programs tracable with valgrind"
[0.000] interpreting file option "# -gw generate dwarf debugging info"
[0.000] interpreting file option "#"
[0.000] interpreting file option "# Enable debuginfo and use the line info unit by default"
[0.000] interpreting file option "#-gl"
[0.000] interpreting file option "# always pass an option to the linker"
[0.000] interpreting file option "#-k-s"
[0.000] interpreting file option "# Always strip debuginfo from the executable"
[0.000] Handling option "-Xs"
[0.000] interpreting option "-Xs"
[0.000] interpreting file option "# -------------"
[0.000] interpreting file option "# Miscellaneous"
[0.000] interpreting file option "# -------------"
[0.000] interpreting file option "# Write always a nice FPC logo ;)"
[0.000] Handling option "-l"
[0.000] interpreting option "-l"
[0.000] interpreting file option "# Verbosity"
[0.000] interpreting file option "# e : Show errors (default) d : Show debug info"
[0.000] interpreting file option "# w : Show warnings u : Show unit info"
[0.000] interpreting file option "# n : Show notes t : Show tried/used files"
[0.000] interpreting file option "# h : Show hints m : Show defined macros"
[0.000] interpreting file option "# i : Show general info p : Show compiled procedures"
[0.000] interpreting file option "# l : Show linenumbers c : Show conditionals"
[0.000] interpreting file option "# a : Show everything 0 : Show nothing (except errors)"
[0.000] interpreting file option "# b : Show all procedure r : Rhide/GCC compatibility mode"
[0.000] interpreting file option "# declarations if an error x : Executable info (Win32 only)"
[0.000] interpreting file option "# occurs"
[0.000] interpreting file option "#"
[0.000] interpreting file option "# Display Info, Warnings, Notes and Hints"
[0.000] Handling option "-viwn"
[0.000] interpreting option "-viwn"
[0.000] interpreting file option "# If you don't want so much verbosity use"
[0.000] interpreting file option "#-vw"
[0.000] End of reading config file fpc.cfg
[0.000] Handling option "-va"
[0.000] interpreting option "-va"
[0.000] Free Pascal Compiler version 2.2.0 [2007/09/09] for x86_64
[0.000] Copyright (c) 1993-2007 by Florian Klaempfl
[0.000] Macro defined: MSWINDOWS
[0.000] Macro defined: WINDOWS
[0.000] Macro defined: ENDIAN_LITTLE
[0.000] Macro defined: FPC_LITTLE_ENDIAN
[0.000] No source file name in command line
[0.000] Compilation aborted