mikrocontroller.net

Forum: PC-Programmierung OpenWatcom C/C++ und wxWidgets


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Sweety68 (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Mein Forum,

der OpenWatcom 1.9 will wxWidgets nicht kompilieren. Er ist für 
NT/9x/Win32 installiert unter wine. wxMSW 2.8 hat kompiliert. Die 3.0.4 
bricht mit dem folgendem Fehler ab. Ich hab schon -ecc und -ecw gesetzt, 
geändert hat sich nichts.

Schaut doch, ob ihr einen Tipp für mich habt, was ich tun könnte. 
Schließlich gibt es extra ein Makefile für (Open)Watcom.

Hier mein Befehl laut (INSTALL im wx-root-vz)
X:\>wmake -f makefile.wat
        wcc386 -bt=nt -zq -fo=wat_mswud\wxzlib_inffast.obj -d2 -od -bm -br -dNDE
BUG -6r  ..\..\src\zlib\inffast.c
        wcc386 -bt=nt -zq -fo=wat_mswud\wxzlib_inflate.obj -d2 -od -bm -br -dNDE
BUG -6r  ..\..\src\zlib\inflate.c
        wcc386 -bt=nt -zq -fo=wat_mswud\wxzlib_inftrees.obj -d2 -od -bm -br -dND
EBUG -6r  ..\..\src\zlib\inftrees.c
        wcc386 -bt=nt -zq -fo=wat_mswud\wxzlib_trees.obj -d2 -od -bm -br -dNDEBU
G -6r  ..\..\src\zlib\trees.c
        wcc386 -bt=nt -zq -fo=wat_mswud\wxzlib_uncompr.obj -d2 -od -bm -br -dNDE
BUG -6r  ..\..\src\zlib\uncompr.c
        wcc386 -bt=nt -zq -fo=wat_mswud\wxzlib_zutil.obj -d2 -od -bm -br -dNDEBU
G -6r  ..\..\src\zlib\zutil.c
        wlib -q -p4096 -n -b ..\..\lib\wat_lib\wxzlibd.lib @wat_mswud\wxzlib.lbc

        wcc386 -bt=nt -zq -fo=wat_mswud\wxpng_png.obj -d2 -od -bm -br -dNDEBUG -
i=..\..\src\zlib -wcd=124 -6r  ..\..\src\png\png.c
..\..\src\png\png.c(281): Error! E1010: Type mismatch
..\..\src\png\png.c(281): Note! N2003: source conversion type is 'void (__watcal
l *)(unsigned int __p1[],int __p2)'
..\..\src\png\png.c(281): Note! N2004: target conversion type is 'void (__cdecl
*)(unsigned int __p1[],int __p2)'
Error(E42): Last command making (wat_mswud\wxpng_png.obj) returned a bad status
Error(E02): Make execution terminated
Hier hab ich das -ecc und -ecw her das nichts geholfen hat.
X:\>wcc386.exe 
Open Watcom C32 Optimizing Compiler Version 1.9
Portions Copyright (c) 1984-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
See http://www.openwatcom.org/ for details.
Usage: wcc386 [options] file [options]
Options:
            ( /option is also accepted )
-3r           386 register calling conventions
-3s           386 stack calling conventions
-4r           486 register calling conventions
-4s           486 stack calling conventions
-5r           Pentium register calling conventions
-5s           Pentium stack calling conventions
-6r           Pentium Pro register calling conventions
-6s           Pentium Pro stack calling conventions
-aa           allow non const initializers for local aggregates or unions
-ad[=<file>]  generate make style automatic dependency file
-add[=<file>] specify first dependency in make style auto-depend file
-adt[=<file>] specify target in make style auto-depend file
-adhp[=<file>]specify default path for headers without one
-adbs         force path separators to '\' in auto-depend file
-adfs         force path separators to '/' in auto-depend file
-ai           turn off type checking on static initialization
(Press return to continue)
-aq           turn off qualifier mismatch warning for const/volatile
-bc           build target is a console application
-bd           build target is a dynamic link library (DLL)
-bg           build target is a GUI application
-bm           build target is a multi-thread environment
-br           build with dll run-time library
-bt=<id>      build target for operating system <id>
-bw           build target is a default windowing application
-d<id>[=text] precompilation #define <id> [text]
-d0           no debugging information
-d1{+}        line number debugging information
-d2           full symbolic debugging information
-d3           full symbolic debugging with unreferenced type names
-d+           allow extended -d macro definitions
-db           generate browsing information
-e=<num>      set limit on number of error messages
-ecc          set default calling convention to __cdecl
-ecd          set default calling convention to __stdcall
-ecf          set default calling convention to __fastcall
-ecp          set default calling convention to __pascal
-ecr          set default calling convention to __fortran
-ecs          set default calling convention to __syscall
(Press return to continue)
-ecw          set default calling convention to __watcall (default)
-ee           call epilogue hook routine
-ef           use full pathnames in error and warning messages
-ei           force enums to be at least as large as an int
-em           force enum base type to use minimum integral type
-en           emit routine names in the code segment
-ep[=<num>]   call prologue hook routine with <num> stack bytes available
-eq           do not display error messages (they are still written to a file)
-et           Pentium profiling
-ez           generate PharLap EZ-OMF object files
-fh[=<file>]  use pre-compiled headers
-fhq[=<file>] do not display pre-compiled header activity warnings
-fi=<file>    force <file> to be included
-fo[=<file>]  set object or preprocessor output file name
-fr[=<file>]  set error file name
-fti          print informational message when opening include file
-fp2          generate 287 floating-point code
-fp3          generate 387 floating-point code
-fp5          optimize floating-point for Pentium
-fp6          optimize floating-point for Pentium Pro
-fpc          calls to floating-point library
-fpi          inline 80x87 instructions with emulation
(Press return to continue)
-fpi87        inline 80x87 instructions
-fpr          generate backward compatible 80x87 code
-g=<id>       set code group name
-hc           generate Codeview debugging information
-hd           generate DWARF debugging information
-hw           generate Watcom debugging information
-i=<path>     add another include path
-j            change char default from unsigned to signed
-mc           compact memory model (small code/large data)
-mf           flat memory model (small code/small data assuming CS=DS=SS=ES)
-ml           large memory model (large code/large data)
-mm           medium memory model (large code/small data)
-ms           small memory model (small code/small data)
-na           disable automatic inclusion of _ialias.h
-nc=<id>      set code class name
-nd=<id>      set data segment name
-nm=<file>    set module name
-nt=<id>      set name of text segment
-o{a,b,c,d,e,f[+],h,i,k,l,m,n,o,p,r,s,t,u,x,z} control optimization
  a           -> relax aliasing constraints
  b           -> enable branch prediction
  c           -> disable <call followed by return> to <jump> optimization
(Press return to continue)
  d           -> disable all optimizations
  e[=<num>]   -> expand user functions inline (<num> controls max size)
  f           -> generate traceable stack frames as needed
  f+          -> always generate traceable stack frames
  h           -> enable expensive optimizations (longer compiles)
  i           -> expand intrinsic functions inline
  k           -> include prologue/epilogue in flow graph
  l           -> enable loop optimizations
  l+          -> enable loop unrolling optimizations
  m           -> generate inline code for math functions
  n           -> allow numerically unstable optimizations
  o           -> continue compilation if low on memory
  p           -> generate consistent floating-point results
  r           -> reorder instructions for best pipeline usage
  s           -> favor code size over execution time in optimizations
  t           -> favor execution time over code size in optimizations
  u           -> all functions must have unique addresses
  x           -> equivalent to -obmiler -s
  z           -> NULL points to valid memory in the target environment
-pil          preprocessor ignores #line directive
-p{c,l,w=<num>} preprocess source file
  c           -> preserve comments
(Press return to continue)
  l           -> insert #line directives
  w=<num>     -> wrap output lines at <num> columns. Zero means no wrap.
-q            operate quietly
-r            save/restore segment registers across calls
-ri           return chars and shorts as ints
-s            remove stack overflow checks
-sg           generate calls to grow the stack
-st           touch stack through SS first
-tp=<id>      set #pragma on( <id> )
-u<id>        undefine macro <id>
-v            output function declarations to .def
-vcap         VC++ compatibility: alloca allowed in argument lists
-w=<num>      set warning level number
-wcd=<num>    warning control: disable warning message <num>
-wce=<num>    warning control: enable warning message <num>
-we           treat all warnings as errors
-wx           set warning level to maximum setting
-za           disable extensions (i.e., accept only ISO/ANSI C)
-zc           place const data into the code segment
-zdf          DS floats i.e. not fixed to DGROUP
-zdp          DS is pegged to DGROUP
-zdl          Load DS directly from DGROUP
(Press return to continue)
-ze           enable extensions (i.e., near, far, export, etc.)
-zev          enable arithmetic on void derived types
-zfw          generate FWAIT instructions
-zff          FS floats i.e. not fixed to a segment
-zfp          FS is pegged to a segment
-zgf          GS floats i.e. not fixed to a segment
-zgp          GS is pegged to a segment
-zg           generate function prototypes using base types
-zk0          double-byte character support: Kanji
-zk0u         translate double-byte Kanji to Unicode
-zk1          double-byte character support: Traditional Chinese
-zk2          double-byte character support: Korean
-zk3          double-byte character support: Simplified Chinese
-zkl          double-byte character support: local installed language
-zku=<num>    load UNICODE translate table for specified code page
-zl           remove default library information
-zld          remove file dependency information
-zlf          add default library information to object files
-zls          remove automatically inserted symbols
-zm           place each function in separate segment
-zp=<num>     pack structure members with alignment {1,2,4,8,16}
-zpw          output warning when padding is added in a struct
(Press return to continue)
-zq           operate quietly (equivalent to -q)
-zro          omit floating point rounding calls (non ANSI)
-zri          inline floating point rounding calls
-zs           syntax check only
-zt[=<num>]   set far data threshold (i.e., larger objects go in far memory)
-zu           SS != DGROUP (i.e., don't assume stack is in your data segment)
-zw           generate code for Microsoft Windows
-zz           remove "@size" from __stdcall function names (10.0 compatible)
Und zuletzt noch die Konfiguration für wxWidgets mit Watcom (Original)
wxWidgets-3.0.4/build/msw/config.wat 
# =========================================================================
#     This configuration file was generated by
#     Bakefile 0.2.9 (http://www.bakefile.org)
#     Beware that all changes made to this file will be overwritten next
#     time you run Bakefile!
# =========================================================================


# -------------------------------------------------------------------------
# These are configurable options:
# -------------------------------------------------------------------------

# C compiler 
CC = wcc386

# C++ compiler 
CXX = wpp386

# Standard flags for CC 
CFLAGS = 

# Standard flags for C++ 
CXXFLAGS = 

# Standard preprocessor flags (common for CC and CXX) 
CPPFLAGS = 

# Standard linker flags 
LDFLAGS = 

# The C preprocessor 
CPP = $(CC) -p

# What type of library to build? [0,1]
#   1 - DLL
SHARED = 0

# GTK+ toolkit version [,2]
TOOLKIT_VERSION = 

# Build wxUniversal instead of native port? [0,1]
#   1 - Universal
WXUNIV = 0

# Compile Unicode build of wxWidgets? [0,1]
#   1 - Unicode
UNICODE = 1

# Type of compiled binaries [debug,release]
BUILD = debug

# Should debugging info be included in the executables? The default value
# "default" means that debug info will be included if BUILD=debug
# and not included if BUILD=release. [0,1,default]
DEBUG_INFO = default

# Value of wxDEBUG_LEVEL. The default value is the same as 1 and means that all
# but expensive assert checks are enabled, use 0 to completely remove debugging
# code. [0,1,default]
DEBUG_FLAG = 1

# Multiple libraries or single huge monolithic one? [0,1]
#   0 - Multilib
#   1 - Monolithic
MONOLITHIC = 1

# Build GUI libraries? [0,1]
#   0 - Base
#   1 - GUI
USE_GUI = 1

# Build wxHTML library (USE_GUI must be 1)? [0,1]
USE_HTML = 1

# Build wxWebView library (USE_GUI must be 1)? [0,1]
USE_WEBVIEW = 1

# Build multimedia library (USE_GUI must be 1)? [0,1]
USE_MEDIA = 1

# Build wxXRC library (USE_GUI must be 1)? [0,1]
USE_XRC = 1

# Build wxAUI library (USE_GUI must be 1)? [0,1]
USE_AUI = 1

# Build wxRibbon library (USE_GUI must be 1)? [0,1]
USE_RIBBON = 1

# Build wxPropertyGrid library (USE_GUI must be 1)? [0,1]
USE_PROPGRID = 1

# Build wxRichTextCtrl library (USE_GUI must be 1)? [0,1]
USE_RICHTEXT = 1

# Build wxStyledTextCtrl library (USE_GUI must be 1)? [0,1]
USE_STC = 1

# Build OpenGL canvas library (USE_GUI must be 1)? [0,1]
USE_OPENGL = 1

# Build quality assurance classes library (USE_GUI must be 1)? [0,1]
USE_QA = 0

# Enable exceptions in compiled code. [0,1]
USE_EXCEPTIONS = 1

# Enable run-time type information (RTTI) in compiled code. [0,1]
USE_RTTI = 1

# Enable threading in compiled code. [0,1]
USE_THREADS = 1

# Enable wxCairoContext for platforms other than Linux/GTK. [0,1]
USE_CAIRO = 0

# Is this official build by wxWidgets developers? [0,1]
OFFICIAL_BUILD = 0

# Use this to name your customized DLLs differently 
VENDOR = custom

#  
WX_FLAVOUR = 

#  
WX_LIB_FLAVOUR = 

# Name of your custom configuration. This affects directory
# where object files are stored as well as the location of
# compiled .lib files and setup.h under the lib/ toplevel directory. 
CFG = 

# Compiler flags needed to compile test suite in tests directory. If you want
# to run the tests, set it so that the compiler can find CppUnit headers. 
CPPUNIT_CFLAGS = 

# Linker flags needed to link test suite in tests directory. If you want
# to run the tests, include CppUnit library here. 
CPPUNIT_LIBS = 

# Version of C runtime library to use. You can change this to
# static if SHARED=0, but it is highly recommended to not do
# it if SHARED=1 unless you know what you are doing. [dynamic,static]
RUNTIME_LIBS = dynamic

Vielen lieben Dank

von Sweety68 (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
( . )Y( . )

von Andreas S. (marais)


Bewertung
0 lesenswert
nicht lesenswert
Hast Du Dir mal Zeile 281 in png.c angeschaut?

von Sweety68 (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Andreas S. schrieb:
> Zeile 281 in png.c

Mit PNG_API_RULE=2 gehts...

...dann hängts bei Scintilla.

von temp (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Ich weiß ja nicht aber ob Watcom der richtige Compiler dafür ist wage 
ich zu bezweifeln. wxWidgets wird noch aktiv entwickelt, Watcom nicht. 
Ob dieser steinalte Compiler noch alle C++ Konstrukte kennt die die 
wxWidgets Entwickler benutzen oder benutzen werden ist fraglich. Kann 
der überhaupt 64bit Programme erstellen? Mit so einer Konstellation 
wirst du wohl auch ziemlich einsam sein. Ob nicht dieser Weg der 
aktuellere und bessere Weg ist?
https://wiki.wxwidgets.org/Cross-Compiling_Under_Linux

von Sweety68 (Gast)


Bewertung
0 lesenswert
nicht lesenswert
temp schrieb:
> Kann
> der überhaupt 64bit Programme erstellen?

Wegen den 16 Bit hab ich den. Unter den 16 Bit Compilern ist Open Watcom 
der Beste.

von Sweety68 (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Woran könnte es liegen, dass wenn ich in build/msw/config.wat STC 
deaktiviere (wegen Scintilla)
# Build wxStyledTextCtrl library (USE_GUI must be 1)? [0,1]
USE_STC = 0
das bekomm
C:\wx\build\msw>wmake -f makefile.wat
Open Watcom Make Version 1.9
Portions Copyright (c) 1988-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
See http://www.openwatcom.org/ for details.
Error(E61): Unexpected End of File
Error(E02): Make execution terminated
?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.