Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > Не компилируется файл реализации


Автор: kindDevil 20.7.2007, 21:55
при компиляции s.cpp, g++-4.1 выдает следующее:
Код

/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../lib/crt1.o: In function `_start':
../sysdeps/i386/elf/start.S:115: undefined reference to `main'
collect2: ld returned 1 exit status


s,cpp - файл реализации для заголовка s.h

s.h:

Код

#ifndef __S_H__
#define __S_H__
int say();
#endif


s.cpp:
Код

#include "s.h"
#include <stdio.h>
int say(){
printf ("Hello World! \n");
return(0);
}


Автор: archimed7592 20.7.2007, 22:01
g++ -c -o./s.o ./s.cpp ...

Добавлено @ 22:01
ps. Заголовок здесь, кстати, не при чём.

Автор: GrayCardinal 21.7.2007, 06:06
kindDevil
Точка входа в любую прогу - функция "main", что-то вроде
Код

int main (int argc, char ** argv) 
{
return EXIT_SUCCESS
}

должно присутствовать.

Добавлено через 2 минуты и 29 секунд
ЗЫ.
Если у тебя файл с мэйном отдельно, и ты хочешь объектный файл сделать, добавляется опция "-c". и -o 
, "-c"  - только компиляция, "-o" - имя выходного файла.
Цитата

g++ s.cpp -c -o s.o

Автор: archimed7592 21.7.2007, 08:01
GrayCardinal, здравомыслящие люди, как правило, "-o" пишут всегда smile.

Автор: GrayCardinal 21.7.2007, 09:10
archimed7592
Здравомыслящие давно забыли все опции smile 

Автор: JackYF 22.7.2007, 00:58
Цитата(GrayCardinal @  21.7.2007,  09:10 Найти цитируемый пост)
Здравомыслящие давно забыли все опции smile  

не согласен-с smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)