2014-11-18 2 views
0

1 выход я использовал следующее:collect2: ошибка: Л.Д. возвращается статус

gcc -c -O4 ab_test.c 

Это работало и генерируется ab_test.o без ошибок, но

gcc -o ab_test ab_test.o -lgsl -lgslcblas -lm 

приводят к ошибкам, как:

**/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../lib64/crt1.o: In function `_start': 
/home/abuild/rpmbuild/BUILD/glibc-2.18/csu/../sysdeps/x86_64/start.S:118: undefined reference to `main' 
collect2: error: ld returned 1 exit status** 

Код ab_test.c равен

#include <stdio.h> 
#include <stdlib.h> 
#include <math.h> 
#include <string.h> 
#include <gsl/gsl_rng.h> 
#include <gsl/gsl_randist.h> 


Main() 
{ 
    int i, temp_int; 
    char amode[30]; 
    char bmode[30]; 
    float wave_vector_y; 
for(i=0; i<41; i++) 
    { 
     //// set wave vector //// 
     wave_vector_y = i*0.005;  

     temp_int = 10000*wave_vector_y; 
     sprintf(amode,"a%04d.dat",temp_int); 
     sprintf(bmode,"b%04d.dat",temp_int); 
    } 
} 
+0

Это должно быть 'main' not' Main' –

+1

'Main()' -> 'int main (void)' –

+0

Я не знал, что –

ответ

0

Ваша «основная» подпись должна быть чем-то вроде int main(void) или int main(int argc ,char *argv[]), а не старым синтаксисом стиля C для int Main().

+0

_ ", а не старый синтаксис стиля C ..." _?!? Что это? –

+1

Синтаксис старого стиля C не позволяет 'int Main()' –

+0

Никогда не говорил, что это приемлемая подпись, но не указывая тип возврата - это старый стиль C. –

Смежные вопросы