delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2004/03/31/07:45:15.1

X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f
From: Hans-Bernhard Broeker <broeker AT physik DOT rwth-aachen DOT de>
Newsgroups: comp.os.msdos.djgpp
Subject: Re: Problem with Allegro and DzComm
Date: 31 Mar 2004 12:32:39 GMT
Organization: Aachen University of Technology (RWTH)
Lines: 48
Message-ID: <c4edp7$cqb$1@nets3.rz.RWTH-Aachen.DE>
References: <c4e9db$228g$1 AT alpha2 DOT radio-msu DOT net>
NNTP-Posting-Host: ac3b07.physik.rwth-aachen.de
X-Trace: nets3.rz.RWTH-Aachen.DE 1080736359 13131 137.226.33.205 (31 Mar 2004 12:32:39 GMT)
X-Complaints-To: abuse AT rwth-aachen DOT de
NNTP-Posting-Date: 31 Mar 2004 12:32:39 GMT
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

Anthony <akantsel AT integra DOT rmt DOT ru> wrote:
> Hello!
> I'm experiencing problems with Allegro 4.1.12 + DzComm 0.9.9g programming.

>     LOCK_FUNCTION(tick_handler);  // error: invalid convertion from 'void
> (*)()' to 'void*'

That error hints at an incompatibility between your choice of
compiler&language (current GCC compiling C++ code) and the version of
Allegro you're using.  You'll have to get a newer Allegro, revert back to
an older GCC or use C code, I think.

> in file c306th.h:
> #ifndef _CENTER_306_THERMOMETR_H_
> #define _CENTER_306_THERMOMETR_H_

> #include <stdexcept>
> #include <dzcomm.h>
> ...
> #endif

There's a very high chance that your problem is in the '...', i.e. in
the part you didn't show here.  Either that, or your installed version
of dzcomm is unsuited for use with current C++ compilers, too.

> c:/djgpp/tmp/ccId1w5b.o(.text+0x0):thermo.cpp: multiple definition of
> `__dzdos_i
> nstall_irq'
> c:/djgpp/tmp/cctwBPwX.o(.text+0x0):C306th.cpp: first defined here

This strongly indicates there are *definitions* of objects in either
your own header file, or in dzcomm.h.  Compile with debug information
and the linker should be able to pin-point the location for you.  As
an alternative, search both your own header file and <dzcomm.h> for
definitions of dzdos_install_irq() and friends.  I would suspect
dzcomm.h.

It *may* help to add a missing 

	extern "C" {
	 //
	}

around your #include <dzcomm.h>.

-- 
Hans-Bernhard Broeker (broeker AT physik DOT rwth-aachen DOT de)
Even if all the snow were burnt, ashes would remain.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019