I am a newbie regarding c/c++ programming. From what I read, If I write a C program, I can compile with both gcc and g++. I'm not able to do the later. Here are the details.
I compiled the clapack package (downloaded from netlib) on intel p4 2.8 using gcc (3.3.3). I am using debian testing. Consider the following program
#include <stdio.h>
int main() { double a[16] = {11,14,15,16,7,10,13,12,5,6,8,9,1,2,3,4}; /* Actual matrix is 11 7 5 1 * 14 10 6 2 * 15 13 8 3 * 16 12 9 4 */ double b[4] = {1.2,3.2,6.2,2.4}; int M=4,N=1,lda=4,ldb=4,ipiv[4],info, ret; int i,j;
for(i=0; i<4; i++) { for(j=0; j<4; j++) { printf("%f ", a[i*4+j]); } printf("\n"); } for(i=0; i<4; i++) printf("%f\n", b[i]); dgesv_(&M, &N, a, &lda, ipiv, b, &ldb, &info); for(i=0; i<4; i++) printf("%f\n", b[i]); // Correct answer is -0.76, 1.83, -0.51, -0.70 printf("%d\n",info);
return 0; }
I am able to run this program with gcc using the following commands.
gcc -c -O2 ludecomp.c gcc ludecomp.o libtmglib.a liblapack.a libblas.a libF77.a libI77.a -lm -lc ./a.out
But when I use g++, I am getting the following error
mv ludecomp.c ludecomp.cpp
g++ -c ludecomp.cpp
ludecomp.cpp: In function `int main()':
ludecomp.cpp:22: error: `dgesv_' undeclared (first use this function)
ludecomp.cpp:22: error: (Each undeclared identifier is reported only once for
each function it appears in.)
Obviously, I am doing something stupid. Could anyone please tell me what I am doing wrong and point the right direction. I searched in google, this mailing list archives - but they were of no help.
thanks raju
Home page: http://www.people.cornell.edu/pages/kk288/index.html Fluid's group: http://groups.yahoo.com/group/flumech/