s-news
[Top] [All Lists]

Using Connect/C++ in .Call:compiling and building DLL

To: "'s-news@lists.biostat.wustl.edu'" <s-news@lists.biostat.wustl.edu>
Subject: Using Connect/C++ in .Call:compiling and building DLL
From: Yingfu Xie <Yingfu.Xie@sekon.slu.se>
Date: Sun, 23 May 2004 22:55:13 +0200
Hello, all,

I am learning to use the Connect/C++ class library via .Call(). I know how
to compile and build a DLL for ordinary C code with .Call, as introduced in
S-programming, using MinGW gcc compiler. But when I came to the example
GaussSeidel (Programmer's Guide, p696), problem arose. I don't know if there
are any other tricks, or I can follow the same procedure, namely,
gcc -x c++ -c -mrtd -Idirectory  myfile.c
gcc -shared -o S.dll myfile.o -L"%S_HOME%/lib/mingw" -lSqpe

I attached the more detailed error messages below. Can any kind soul help
me? I really appreciate any comments and helps.

All the best,

Yingfu

Problem description:

All the error message in the first compiling step, mainly with file
spalcfrm.h:

D:\s-project\Classification\sconnect>gcc -Wall -x c++ -c -mrtd -I"c:\program
files\insightful\splus62\sconnect" -I"c:\program
files\insightful\splus62\include" -I"c:\program
files\insightful\splus62\samples\GaussSDL" gaussdl.c

In file included from c:/program
files/insightful/splus62/sconnect/spvector.h:18
,
                 from c:/program
files/insightful/splus62/sconnect/spchar.h:16,
                 from c:/program
files/insightful/splus62/sconnect/sconnect.h:15
,
                 from gaussdl.c:2:
c:/program files/insightful/splus62/sconnect/spalcfrm.h:33: warning:
`dllimport' attribute ignored
c:/program files/insightful/splus62/sconnect/spalcfrm.h:33: declaration does
   not declare anything
c:/program files/insightful/splus62/sconnect/spalcfrm.h:33: parse error
before `)' token
c:/program files/insightful/splus62/sconnect/spalcfrm.h:34: parse error
before `long'

I don't know what is wrong. However, if I temporarily comment out the
concerned file spalcfrm.h, the first step is ok. But then, when I proceed to
the second with the next command line, many 'undefined reference' errors
occurred, most like the last two.

D:\s-project\Classification\sconnect>gcc -shared -o S.dll gaussdl.o
-L"c:\program files\insightful\splus62\lib\mingw" -lSqpe

gaussdl.o(.text+0x58):gaussdl.c: undefined reference to
`__gxx_personality_sj0'
gaussdl.o(.text+0xba):gaussdl.c: undefined reference to
`CSPnumericMatrix::CSPnumericMatrix(s_object_struct*, int)'

Thank you for your time!
###########################################

This message has been scanned by F-Secure 
Anti-Virus for Microsoft Exchange.

###########################################



<Prev in Thread] Current Thread [Next in Thread>