Date: Wed, 02 Dec 1998 18:16:15 -0500 From: Tod Luginbuhl <tod@science-guy.npt.nuwc.navy.mil> To: questions@FreeBSD.ORG Subject: Calling LAPACK library from C in 3.0-RELEASE Message-ID: <3665CA3F.259C3CB@science-guy.npt.nuwc.navy.mil>
next in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------8B5D41F2AA025F36B7C1DB63
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Hi,
I have one machine running 2.2.7-STABLE (last installworld on 25 Sept),
and on this maching, I have no problem calling the LAPACK library from C
(LAPACK etc built using ports). I recently built a two processor system
using the ASUS P2B-DS mother board which runs 3.0-RELEASE from the
Walnut Creek CDs. When I try to compile a program that works in STABLE
under 3.0-RELEASE, I get the following error message:
cc -g -L/usr/local/lib -o stupid stupid.o -lm -lblas -llapack -lf2c
/usr/lib/libf2c.so: undefined reference to `MAIN__'
*** Error code 1
Does anyone have any ideas why this is happening and how I might correct
it? A source list for simple C program that demonstrates the problem
is given below. I've also included the makefile. Please email me
directly because I stopped subscribing to this list (when I finish my
dissertation, I'll subscribe again). Thanks!
-
------------------------------------------------------------------------
Tod Luginbuhl email: t.e.luginbuhl@ieee.org
Code 2121
luginbuhl@npt.nuwc.navy.mil
Naval Undersea Warfare Center
1176 Howell Street Telephone: (401) 832-8241
Newport, Rhode Island FAX: (401) 832-7453
02841-1708
USA
"Don't argue with drunks and fanatics!" -- Sun Wolf (Barbara Hambly)
------------------------------------------------------------------------
--------------8B5D41F2AA025F36B7C1DB63
Content-Type: text/plain; charset=us-ascii; name="stupid.c"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; filename="stupid.c"
#include <stdlib.h>
#include <stdio.h>
#include <strings.h>
#include <math.h>
#include <limits.h>
#define N 3
#define NSQR N*N
void main(int argc, char **argv)
{
int i, j, n, info;
int pivot[N];
double matrix[NSQR];
double inverse[NSQR];
void dgesv(int *, int *,double *,int *,int *,double *,int *,int *);
for (i=0;i<NSQR;i++) {
matrix[i] = ((double) random())/((double) INT_MAX);
inverse[i] = 0.0;
}
printf("\nMatrix equals...\n\n");
for (i=0;i<N;i++) {
inverse[i*N+i] = 1.0;
for (j=0;j<N;j++) {
printf("%e ",matrix[i+N*j]);
}
printf("\n");
}
n = N;
dgesv_(&n,&n,matrix,&n,pivot,inverse,&n,&info);
if (0 == info) {
printf("\n\nMatrix Inverse equals...\n\n");
for (i=0;i<N;i++) {
for (j=0;j<N;j++) {
printf("%e ",inverse[i+N*j]);
}
printf("\n");
}
}
else {
printf("\nI couldn't invert the matrix!!(:-(\n");
}
printf("\n");
}
--------------8B5D41F2AA025F36B7C1DB63
Content-Type: text/plain; charset=us-ascii; name="stupid_makefile"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; filename="stupid_makefile"
stupid.o : stupid.c
cc -c -g stupid.c
stupid : stupid.o
cc -g -L/usr/local/lib -o stupid stupid.o -lm -lblas -llapack -lf2c
--------------8B5D41F2AA025F36B7C1DB63--
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3665CA3F.259C3CB>
