delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2004/03/31/06:31:15

X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f
From: "Anthony" <akantsel AT integra DOT rmt DOT ru>
Newsgroups: comp.os.msdos.djgpp
Subject: Problem with Allegro and DzComm
Date: Wed, 31 Mar 2004 15:17:43 +0400
Organization: Radio-MSU NOC, Moscow State University
Lines: 82
Message-ID: <c4e9db$228g$1@alpha2.radio-msu.net>
NNTP-Posting-Host: integra.rmt.ru
X-Trace: alpha2.radio-msu.net 1080731884 67856 81.13.30.150 (31 Mar 2004 11:18:03 GMT)
X-Complaints-To: usenet AT radio-msu DOT net
NNTP-Posting-Date: Wed, 31 Mar 2004 11:18:03 +0000 (UTC)
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

Hello!
I'm experiencing problems with Allegro 4.1.12 + DzComm 0.9.9g programming.

#include <allegro.h>
#include <dzcomm.h>
...
comm_port *port;
volatile int tick;
void tick_handler()
{
    ++tick;
}
END_OF_FUNCTION(tick_handler);
...
int main()
{
...
    LOCK_VARIABLE(tick);
    LOCK_FUNCTION(tick_handler);  // error: invalid convertion from 'void
(*)()' to 'void*'
...
}

If I comment the #include <dzcomm.h> string (and remove everything related
to dzcomm, the code compiles just fine.
What can be the case?

Also I have a small test program that uses dzcomm with no allegro. While it
is a single file, it works fine. If I split it into two files, I'm not able
to link it:

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

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

in file c306th.cpp:
#include "C306th.h"
...

in file thermo.cpp:
#include <iostream>
#include <iomanip>
#include "C306th.h"
...

Then
C:\DJGPP\MyProjects\Thermo>gpp -Wall C306th.cpp thermo.cpp -o
thermo.exe -ldzcom

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
c:/djgpp/tmp/ccId1w5b.o(.text+0x1a):thermo.cpp: multiple definition of
`__dzdos_
remove_irq'
c:/djgpp/tmp/cctwBPwX.o(.text+0x1a):C306th.cpp: first defined here
c:/djgpp/tmp/ccId1w5b.o(.text+0x30):thermo.cpp: multiple definition of
`_dzdos_i
nstall_timer'
c:/djgpp/tmp/cctwBPwX.o(.text+0x30):C306th.cpp: first defined here
c:/djgpp/tmp/ccId1w5b.o(.text+0x3e):thermo.cpp: multiple definition of
`_dzdos_i
nstall_param_int'
c:/djgpp/tmp/cctwBPwX.o(.text+0x3e):C306th.cpp: first defined here
c:/djgpp/tmp/ccId1w5b.o(.text+0x5a):thermo.cpp: multiple definition of
`_dzdos_r
emove_param_int'
c:/djgpp/tmp/cctwBPwX.o(.text+0x5a):C306th.cpp: first defined here
collect2: ld returned 1 exit status

What am I doing wrong?
I would appreciate any help a lot.
Thanks.
Anthony


- Raw text -


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