G фатальная ошибка не заданы входные файлы компиляция прервана

Перейти к контенту

What I’ve already done:

I’ve looked through other StackOverflow threads with similar issues, but none of them seem to apply to my specific case. I’ve also double checked to makes sure that the correct files are in the correct locations (folders) and that everything is named properly as well.

This is the error I’m receiving:

[employee_xyz@petco.com]$ make
g++ -Wall -O2 -ansi -pedantic -o dog.cpp
g++: fatal error: no input files
compilation terminated.
make: *** [mscp.o] Error 4

Here’s the makefile in question:

CC = g++
CFLAGS = -Wall -O2 -ansi -pedantic -Werror

TARGETS = dog dog.o collar.o

dog: dog.o collar.o
    $(CC) $(CFLAGS) -o dog collar.o dog.o

dog.o: dog.cpp collar.h
    $(CC) $(CFLAGS) -o dog.cpp

collar.o: collar.cpp collar.h
    $(CC) $(CFLAGS) -o collar.cpp

clean:
    -rm -f ${TARGETS}

Here are the files (they’re all in the same directory) that are being referenced by the makefile:

-collar.cpp
-collar.h
-makefile
-dog.cpp

What am I doing wrong?

What I’ve already done:

I’ve looked through other StackOverflow threads with similar issues, but none of them seem to apply to my specific case. I’ve also double checked to makes sure that the correct files are in the correct locations (folders) and that everything is named properly as well.

This is the error I’m receiving:

[employee_xyz@petco.com]$ make
g++ -Wall -O2 -ansi -pedantic -o dog.cpp
g++: fatal error: no input files
compilation terminated.
make: *** [mscp.o] Error 4

Here’s the makefile in question:

CC = g++
CFLAGS = -Wall -O2 -ansi -pedantic -Werror

TARGETS = dog dog.o collar.o

dog: dog.o collar.o
    $(CC) $(CFLAGS) -o dog collar.o dog.o

dog.o: dog.cpp collar.h
    $(CC) $(CFLAGS) -o dog.cpp

collar.o: collar.cpp collar.h
    $(CC) $(CFLAGS) -o collar.cpp

clean:
    -rm -f ${TARGETS}

Here are the files (they’re all in the same directory) that are being referenced by the makefile:

-collar.cpp
-collar.h
-makefile
-dog.cpp

What am I doing wrong?

  • Печать

Страницы: [1] 2 3 5  Все   Вниз

Тема: Программирование на С++  (Прочитано 6661 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн
gerk787

Доброго времени суток!

Нашел лекций по с++ вот ссылка:
http://www.youtube.com/watch?v=atVgLRzl3rI&feature=relmfu

Дело в том что он объясняет, вроде все понятно но и не совсем.
Начну с расширения файла .c — это как говорят расширения язык Си, а для С++ надо использовать расширение .cpp, это одно.

Во вторых пытаюсь скомпилировать программу пишет:

gcc: ошибка: main.c: Нет такого файла или каталога
gcc: фатальная ошибка: не заданы входные файлы
компиляция прервана.
Указываю полный путь:

encoder@Encoder-RV518:~$ gcc /home/encoder/Documents/c/main.c
encoder@Encoder-RV518:~$

И ничего не появляться в папе с файлом main.c. Что я делаю не так?
Причем в программе Double Commander почему-то 2 файла, ScreenShot ниже:

В третьих пишу другую программу уже в Geany и мне выдают ошибку, ниже ScreenShot на фоне доска откуда я списал код точно как у него, терминал открыл после компиляций.

Повторю вопросы:
1 — Верное ли расширение файла .с
2 — Почему не компилируется?
3 — что за ошибка и как её исправить?
4 — Стоит ли учить С++ по этим лекциям? Программа обучения соответственна с современными стандартами языка?

Заранее благодарю.


Lifewalker

Для начала вам нужно разобраться, что такое каталоги, файлы и как они работают. Изучить способы взаимодействия программ и передачи им параметров. Понять, что есть текущий каталог и пр.

После этого можно начать изучить программирование. Начните с чего-нибудь более цельного, внятного и простого, чем Си. Например, с Паскаля или Модулы.

Курс лекций занятный :) И да, расширение .с верное.


Оффлайн
mastepaner


Оффлайн
gerk787

Для начала вам нужно разобраться, что такое каталоги, файлы и как они работают. Изучить способы взаимодействия программ и передачи им параметров. Понять, что есть текущий каталог и пр.

После этого можно начать изучить программирование. Начните с чего-нибудь более цельного, внятного и простого, чем Си. Например, с Паскаля или Модулы.

Курс лекций занятный :) И да, расширение .с верное.

Если он все верно объясняет то почему не работает?

А насчет каталогов я вроде знаю, это на сколько мне известно те же папки, как прописывать пути тоже знаю.


Lifewalker

Если он все верно объясняет то почему не работает?

Потому что вы не правильно понимаете.

Компилятор пишет ошибку «нет файла». Сделайте так, чтобы копилятор находил файл. Для этого разберитесь что такое каталоги, текущий каталог, как передаются параметры и т.д.


Оффлайн
gerk787

Если он все верно объясняет то почему не работает?

Потому что вы не правильно понимаете.

Компилятор пишет ошибку «нет файла». Сделайте так, чтобы копилятор находил файл. Для этого разберитесь что такое каталоги, текущий каталог, как передаются параметры и т.д.

Может поделитесь ссылка на хорошие материалы? Буду благодарен.


Lifewalker

Может поделитесь ссылка на хорошие материалы? Буду благодарен.

Почитайте под моим аватаром список осей, с которыми я работал. Неужели вы думаете, что я знаю современные книги по этим элементарным вещам? Поищите в интернете, думаю статей и инструкций навалом.


Оффлайн
gerk787

Может поделитесь ссылка на хорошие материалы? Буду благодарен.

Почитайте под моим аватаром список осей, с которыми я работал. Неужели вы думаете, что я знаю современные книги по этим элементарным вещам? Поищите в интернете, думаю статей и инструкций навалом.

Хорошо, только к вам будет такая просьба: Вы можете исправить ошибки которые я допусти?
Покажи что написать что запустить компилятор?
Файл main.c находиться по адресу:

/home/encoder/Documents/c/main.cПишу вот так:

cd /home/encoder/Documents/c Как теперь скомпилировать?


Пользователь решил продолжить мысль 07 Октября 2012, 17:27:55:


Уже разобрался как компилировать но при компиляций выдает ошибку как исправить?

encoder@Encoder-RV518:~/Documents/c$ gcc main.c hello.c -o main
hello.c: В функции «hello»:
hello.c:2:2: предупреждение: несовместимая неявная декларация внутренней функции «printf» [по умолчанию включена]

Файл main.c

int main () {
hello();
return 0;
}

Файл hello.c

void hello (){
printf ("Hello!");
}

« Последнее редактирование: 07 Октября 2012, 17:27:55 от gerk787 »


Lifewalker

Ой… Простите за прямоту, но вам нужно начинать с самых (то есть вобще с самых-самых) азов. Говорил же, начитните с паскаля. Нет, мы же круче всех, нам сразу подавай Си, да ещё с раздельной компиляцией, не разобравшись в заголовках и прочем… Конечно, ведь Си — это кулхакерно, на Си пишут гуру, Си — это крутотенюшка, куда там простачкам, строчащим на Делфях поганых и 1С-ках убогих :)

Правильно писать так:

// Первая мегапрога на Си
// Автор - я

#include <stdio.h>

int main(void)
{
printf ("Hello, everybody!n");
return (0);
}

Помпилируется и запускается без ошибок.


Оффлайн
gerk787


Оффлайн
NetFly

вот еще 1 вариант:

// программа higerk787
#include <iostream>
using namespace std;
int main()
{
          cout<<"hi gerk787n";
          return 0;
}
для компиляции введи:

#c++ higerk787.cpp -o higerk787Сам, только начал, сделал выводы с принтф и с каут.

« Последнее редактирование: 08 Октября 2012, 03:36:28 от NetFly »


Lifewalker

Не мутите воду, пожалуйста. Чел взялся за Си, а не за Си++. Вывод в Си++ делается мягко говоря иначе, чем в Си. Да и в вашей голове каша та ещё. Зачем вы мешаете серое с мягким? Ваша программа идеологически правильно должна выглядеть так.

// программа higerk787

#include <iostream>

// сомнительное решение, хотя и формально правильное для учебников 15-летней давности
// сам так делал, пока по башке не стукнули более опытные товарищи
using namespace std;

int main(void)
{
          cout << "Hi, gerk787" << endl;

          // вообще-то совсем уж корректно будет чуть иначе, если закомментировать
          // строку using namespace в начале текста программы
          // std::cout << "Hi, gerk787" << std::endl;

          return 0;
}

Как говорится, найдите два отличия.

« Последнее редактирование: 08 Октября 2012, 15:39:15 от Lifewalker »


Оффлайн
NetFly

окей, это интересно, т.е. в этом случае можно не обозначать пространство имен!!!
Примерно по такому учебнику я и обучаюсь. Если знаете какие нить современные хорошие варианты учебников- в студию.
Буду признателен!


Пользователь решил продолжить мысль 08 Октября 2012, 18:17:14:


Спасибо за подсказку.

« Последнее редактирование: 08 Октября 2012, 18:18:32 от NetFly »


Шинш

Lifewalker,
а для чего в главную функцию передавать void ?


Оффлайн
gerk787

Не мутите воду, пожалуйста. Чел взялся за Си, а не за Си++. Вывод в Си++ делается мягко говоря иначе, чем в Си. Да и в вашей голове каша та ещё. Зачем вы мешаете серое с мягким? Ваша программа идеологически правильно должна выглядеть так.

Там вроде как учат С++, но почему-то объясняют Си.


  • Печать

Страницы: [1] 2 3 5  Все   Вверх

I’m having some trouble with my first bigger makefile project.
I got a bigger Library i’m using in my c++ project. More accurate: In my .cpp files and .h files I need to include some headers out of this bigger library.

Here’s my structure, to let you know how I’m using the library in my project:

myproj
  |
  |____Makefile
  |____main.cpp
  |____init.cpp
  |____end.cpp
  |____init.h
  |____end.h
  |____Dependencies
           |____biggerlib
                   |____bin   
                           |____...
                   |____include
                           |____#more directories including
                                #the Library headers
                           |____...
                   |____src
                           |____biggerLib1
                           |____biggerLib2
                                   |____biggerLibrary.cpp
                                          |____...
                                   |____Lib2.cpp
                                          |____...
                                   |____Lib3.cpp
                                          |____...
                                   |____Util
                                          |____DebugOut.cpp
                                   |____Dev
                                   |____Data
                                          |____etc.
                   |____makestuff
                           |____...
                           |____...
                                   |____...
                           |____...
                   |____codestuff
                           |____...
                           |____...
                                   |____...
                           |____...
                   |____etc.

I’m not allowed to change that structure.

So, my problem is, that if I start make, gcc or g++ does not find my input files.
Error code:

g++: fatal error: no input files
compilation terminated.
*makefileName*:21: recipe for target '*Name*' failed
make: *** [*Name*] Error 1

Therefore, here some out of my makefile:
At first my OBJECTS file:

OBJECTS += 
$(BUILD)main.o 
$(BUILD)init.o 
$(BUILD)end.o 

Then my makefile:

#Name (output name / project name)
NAME = proj

#Compiler directory
CC = gcc
CPP = g++
#Libray directorys
SDCC = /home/myname/myproj/Dependencies/biggerlib/src/biggerLib2/Util

# the headers are working well since yesterday but now i got the trouble with the input stuff...

#C-Flags for object-compiling
CFLAGS = -O2 -g3 -c -I$(SDCHDR) -I$(SDCDATAMODEL) -I$(SDCPOCO) #may i have to add here the source files too? did not work...

#Main-target (linking)
$(NAME) : $(OBJECTS)
    $(CPP) -o $(NAME) -I$(SDCC)/DebugOut.cpp ## this one was just to try if I could bind in one single .h file... 

#Object-targets
%.o : %.cpp 
    $(CPP) -o $@ $< $(CFLAGS)

My make command:

make -f makefilename

So it would be nice, if anyone of you know how I could include my missing input files, without changing the directory structure.

I’m having some trouble with my first bigger makefile project.
I got a bigger Library i’m using in my c++ project. More accurate: In my .cpp files and .h files I need to include some headers out of this bigger library.

Here’s my structure, to let you know how I’m using the library in my project:

myproj
  |
  |____Makefile
  |____main.cpp
  |____init.cpp
  |____end.cpp
  |____init.h
  |____end.h
  |____Dependencies
           |____biggerlib
                   |____bin   
                           |____...
                   |____include
                           |____#more directories including
                                #the Library headers
                           |____...
                   |____src
                           |____biggerLib1
                           |____biggerLib2
                                   |____biggerLibrary.cpp
                                          |____...
                                   |____Lib2.cpp
                                          |____...
                                   |____Lib3.cpp
                                          |____...
                                   |____Util
                                          |____DebugOut.cpp
                                   |____Dev
                                   |____Data
                                          |____etc.
                   |____makestuff
                           |____...
                           |____...
                                   |____...
                           |____...
                   |____codestuff
                           |____...
                           |____...
                                   |____...
                           |____...
                   |____etc.

I’m not allowed to change that structure.

So, my problem is, that if I start make, gcc or g++ does not find my input files.
Error code:

g++: fatal error: no input files
compilation terminated.
*makefileName*:21: recipe for target '*Name*' failed
make: *** [*Name*] Error 1

Therefore, here some out of my makefile:
At first my OBJECTS file:

OBJECTS += 
$(BUILD)main.o 
$(BUILD)init.o 
$(BUILD)end.o 

Then my makefile:

#Name (output name / project name)
NAME = proj

#Compiler directory
CC = gcc
CPP = g++
#Libray directorys
SDCC = /home/myname/myproj/Dependencies/biggerlib/src/biggerLib2/Util

# the headers are working well since yesterday but now i got the trouble with the input stuff...

#C-Flags for object-compiling
CFLAGS = -O2 -g3 -c -I$(SDCHDR) -I$(SDCDATAMODEL) -I$(SDCPOCO) #may i have to add here the source files too? did not work...

#Main-target (linking)
$(NAME) : $(OBJECTS)
    $(CPP) -o $(NAME) -I$(SDCC)/DebugOut.cpp ## this one was just to try if I could bind in one single .h file... 

#Object-targets
%.o : %.cpp 
    $(CPP) -o $@ $< $(CFLAGS)

My make command:

make -f makefilename

So it would be nice, if anyone of you know how I could include my missing input files, without changing the directory structure.

ИСПРАВЛЕНИЕ: ПРОГРАММЫ C / C НЕ РАБОТАЮТ НАСТОЯЩИМ В КОДЕ VS (EASY FIX) | 100% РАБОТАЕТ

У меня проблемы с моим первым большим проектом makefile. У меня большая библиотека, которую я использую в своем проекте на C ++. Точнее: в мои файлы .cpp и .h мне нужно включить некоторые заголовки из этой более крупной библиотеки.

Вот моя структура, чтобы вы знали, как я использую библиотеку в своем проекте:

myproj | |____Makefile |____main.cpp |____init.cpp |____end.cpp |____init.h |____end.h |____Dependencies |____biggerlib |____bin |____... |____include |____#more directories including #the Library headers |____... |____src |____biggerLib1 |____biggerLib2 |____biggerLibrary.cpp |____... |____Lib2.cpp |____... |____Lib3.cpp |____... |____Util |____DebugOut.cpp |____Dev |____Data |____etc. |____makestuff |____... |____... |____... |____... |____codestuff |____... |____... |____... |____... |____etc. 

Мне не разрешено менять эту структуру.

Итак, моя проблема в том, что если я запускаю make, gcc или g ++ не находит мои входные файлы. Код ошибки:

g++: fatal error: no input files compilation terminated. *makefileName*:21: recipe for target '*Name*' failed make: *** [*Name*] Error 1 

Поэтому вот некоторые из моего make-файла: Сначала мой файл OBJECTS:

OBJECTS +=  $(BUILD)main.o  $(BUILD)init.o  $(BUILD)end.o 

Затем мой make-файл:

#Name (output name / project name) NAME = proj #Compiler directory CC = gcc CPP = g++ #Libray directorys SDCC = /home/myname/myproj/Dependencies/biggerlib/src/biggerLib2/Util # the headers are working well since yesterday but now i got the trouble with the input stuff... #C-Flags for object-compiling CFLAGS = -O2 -g3 -c -I$(SDCHDR) -I$(SDCDATAMODEL) -I$(SDCPOCO) #may i have to add here the source files too? did not work... #Main-target (linking) $(NAME) : $(OBJECTS) $(CPP) -o $(NAME) -I$(SDCC)/DebugOut.cpp ## this one was just to try if I could bind in one single .h file... #Object-targets %.o : %.cpp $(CPP) -o $@ $< $(CFLAGS) 

Моя команда make:

make -f makefilename 

Было бы неплохо, если бы кто-нибудь из вас знал, как я могу включить недостающие входные файлы, не меняя структуру каталогов.

  • Возможный дубликат Как сгенерировать Make-файл с исходным кодом в подкаталогах, используя только один make-файл
  • Я думаю, что cmake легко масштабировать, вы можете попробовать изучить cmake для своего нового проекта; это инструмент для создания сборки.
  • Cmake, вероятно, не вариант для меня :( Мне нужно сделать это с помощью make, чтобы включить его в другой make-файл в проекте waay bigge
  • Гадать не получится! Вы никогда не устанавливаете $(OBJECTS) и вы пытались передать исходный файл в качестве пути включения. Какие справочные материалы вы используете при создании своего make-файла?
  • Я установил их, но не показал вам, потому что подумал, что для вас это не понадобится. у меня есть внешний объектный файл

Tweet

Share

Link

Plus

Send

Send

Pin

Trurlol

0 / 0 / 0

Регистрация: 24.12.2012

Сообщений: 21

1

Не компилируется под убунтой

24.12.2012, 22:42. Показов 4386. Ответов 14

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Программа была написана под виндой, пытаюсь запустить ее под убунтой в эклипсе, дебагер шлет меня куда подальше. Подскажите пожалуйста, чего ему не хватает для счастья? Пока роюсь в инете и ищу возможно не хватающих библиотек, но толком не знаю какие именно библиотеки ему нужны.

Сам код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
using namespace std;
 
int main(void) {
 
    FILE *fpRead;
    if((fpRead = fopen("test.txt", "r")) == NULL){ //Открыть файл fpRead для чтения.
        puts("Ошибка открытия файлаn");
        return 1;
    }
 
    //Подсчитать колличество рядов в файле (nRows).
    int nRows(0), nSymb(11);
    char *str = new char [nSymb];
    while (!feof(fpRead))
    {
        fgets(str, 11, fpRead); //Прочесть один ряд с файла.
        nRows++;
    }
    cout << "Рядов в файле: " << nRows << 'n';
 
    //Выделить память под массив для указателей соответсвующего размера.
    char *pStr;
    if ((pStr = (char *)malloc(nRows*nSymb)) == NULL) { //nSymb - длинна одного ряда, nRows - колличество рядов.
        printf("Ошибка выделения памяти под массив указателейn");
        fclose(fpRead);
        return 1;
    }
    //Сохранить слова в массиве.
    fseek(fpRead, 0, 0); //Перейти на начало файла.
    int i(0);
    while (!feof(fpRead))
    {
        fgets(str,nSymb,fpRead); //Прочесть один ряд с файла.
        if(str[strlen(str)-1]!='n') str[strlen(str)] = 'n'; //Прибавить переход на новый ряд.
        strcpy((char*)(pStr+i*nSymb), str); //Поместить в pStr.
        i++;
    }
 
    fclose(fpRead);
 
    //Отсортировать массив в алфавитном порядке.
    for (i = 0; i < nRows - 1; i++) {
        for (int j = i + 1; j < nRows; j++) {
            if(strcmp((char*)(pStr+i*nSymb), (char*)(pStr+j*nSymb)) > 0) {
                strcpy(str, (char*)(pStr+i*nSymb)); //Выполнить перестановку.
                strcpy((char*)(pStr+i*nSymb), (char*)(pStr+j*nSymb));
                strcpy((char*)(pStr+j*nSymb), str);
            }
        }
    }
 
    //Вывести на экран.
    for (i = 0; i < nRows; i++) {
        cout << (char*)(pStr+i*nSymb);
    }
    free(pStr);
 
    return 0;
}



0



Почетный модератор

7390 / 2636 / 281

Регистрация: 29.07.2006

Сообщений: 13,696

25.12.2012, 02:33

2

Цитата
Сообщение от Trurlol
Посмотреть сообщение

Не компилируется под убунтой

Цитата
Сообщение от Trurlol
Посмотреть сообщение

дебагер шлет меня куда подальше

Так тебя шлет дебаггер, или все-таки компилятор?
И вообще у тебя код смесь плюсового и сишных либ. Ужас.



0



Trurlol

0 / 0 / 0

Регистрация: 24.12.2012

Сообщений: 21

26.12.2012, 18:22

 [ТС]

3

Вот скопировал больные места. Самое интерестное, то, что в универе все без проблем скомпилировалось, а дома по прежнему ругается.
Переустановил эклипс, все осталось как и было.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Description Resource    Path    Location    Type
Function 'fclose' could not be resolved LabFiles.cpp    /LabFiles/src   line 29 Semantic Error
Function 'fclose' could not be resolved LabFiles.cpp    /LabFiles/src   line 43 Semantic Error
Function 'feof' could not be resolved   LabFiles.cpp    /LabFiles/src   line 18 Semantic Error
Function 'feof' could not be resolved   LabFiles.cpp    /LabFiles/src   line 35 Semantic Error
Function 'fgets' could not be resolved  LabFiles.cpp    /LabFiles/src   line 20 Semantic Error
Function 'fgets' could not be resolved  LabFiles.cpp    /LabFiles/src   line 37 Semantic Error
Function 'fopen' could not be resolved  LabFiles.cpp    /LabFiles/src   line 10 Semantic Error
Function 'free' could not be resolved   LabFiles.cpp    /LabFiles/src   line 60 Semantic Error
Function 'fseek' could not be resolved  LabFiles.cpp    /LabFiles/src   line 33 Semantic Error
Function 'malloc' could not be resolved LabFiles.cpp    /LabFiles/src   line 27 Semantic Error
Function 'printf' could not be resolved LabFiles.cpp    /LabFiles/src   line 28 Semantic Error
Function 'puts' could not be resolved   LabFiles.cpp    /LabFiles/src   line 11 Semantic Error
Function 'strcmp' could not be resolved LabFiles.cpp    /LabFiles/src   line 48 Semantic Error
Function 'strcpy' could not be resolved LabFiles.cpp    /LabFiles/src   line 39 Semantic Error
Function 'strcpy' could not be resolved LabFiles.cpp    /LabFiles/src   line 49 Semantic Error
Function 'strcpy' could not be resolved LabFiles.cpp    /LabFiles/src   line 50 Semantic Error
Function 'strcpy' could not be resolved LabFiles.cpp    /LabFiles/src   line 51 Semantic Error
Function 'strlen' could not be resolved LabFiles.cpp    /LabFiles/src   line 38 Semantic Error
Function 'strlen' could not be resolved LabFiles.cpp    /LabFiles/src   line 38 Semantic Error
Symbol 'cout' could not be resolved LabFiles.cpp    /LabFiles/src   line 23 Semantic Error
Symbol 'cout' could not be resolved LabFiles.cpp    /LabFiles/src   line 58 Semantic Error
Symbol 'NULL' could not be resolved LabFiles.cpp    /LabFiles/src   line 10 Semantic Error
Symbol 'NULL' could not be resolved LabFiles.cpp    /LabFiles/src   line 27 Semantic Error
Symbol 'std' could not be resolved  LabFiles.cpp    /LabFiles/src   line 5  Semantic Error
Type 'FILE' could not be resolved   LabFiles.cpp    /LabFiles/src   line 9  Semantic Error



0



В астрале

Эксперт С++

8048 / 4805 / 655

Регистрация: 24.06.2010

Сообщений: 10,562

27.12.2012, 09:49

4

Trurlol, Эм. Очевидно же, что С-runtime/C++-runtime библиотеки не подключены. Проверяйте настройки IDE.

g++ -o имя_файла имя_файла.cpp в консоли. Компилируется?



0



3 / 3 / 1

Регистрация: 04.02.2011

Сообщений: 37

27.12.2012, 12:15

5

Все таки в компиляторе дело

g++ -o имя_файла имя_файла.cpp в консоли. Компилируется?

Я проверял вот так
g++ -o имя_файла имя_файла.cpp -lstdc++
Все скомпилировалось ( или вместо g++ gcc был, точно не скажу)



0



0 / 0 / 0

Регистрация: 24.12.2012

Сообщений: 21

27.12.2012, 23:57

 [ТС]

6

Цитата
Сообщение от ForEveR
Посмотреть сообщение

Trurlol, Эм. Очевидно же, что С-runtime/C++-runtime библиотеки не подключены. Проверяйте настройки IDE.

Подскажите пожалуйста как их подключить?



0



11 / 11 / 3

Регистрация: 18.03.2010

Сообщений: 45

28.12.2012, 09:42

7

Сначала попробуй собраться из командной строки, как посоветовали.



0



0 / 0 / 0

Регистрация: 24.12.2012

Сообщений: 21

02.01.2013, 21:16

 [ТС]

8

Цитата
Сообщение от ForEveR
Посмотреть сообщение

Trurlol, Эм. Очевидно же, что С-runtime/C++-runtime библиотеки не подключены. Проверяйте настройки IDE.

g++ -o имя_файла имя_файла.cpp в консоли. Компилируется?

g++ -o test.cpp
g++: фатальная ошибка: не заданы входные файлы
компиляция прервана.

После инстала $ sudo apt-get g++, эклипс компилирует код и все отлично работает, но он по прежнему считает что есть ошибки, т.е. список проблем остался тот же и весь код пестрит красными подчеркиваниями.



0



3 / 3 / 1

Регистрация: 04.02.2011

Сообщений: 37

03.01.2013, 00:11

9

Цитата
Сообщение от Trurlol
Посмотреть сообщение

g++ -o test.cpp
g++: фатальная ошибка: не заданы входные файлы

Не удивительно. После -o следует имя выходного файла
g++ -o test test.cpp
gcc -o test test.cpp -lstdc++

Цитата
Сообщение от Trurlol
Посмотреть сообщение

После инстала $ sudo apt-get g++, эклипс компилирует код и все отлично работает, но он по прежнему считает что есть ошибки, т.е. список проблем остался тот же и весь код пестрит красными подчеркиваниями

В Eclipse не писал, но стоило предполагать что это обертка вокруг gcc.
Какой список проблем остался, если все скомпилировалось? Никаких предупреждений о привидении типов?

Добавлено через 1 минуту
P.S.: И вообще православный способ под линукс это компиляция с Makefile’ом.



0



Trurlol

0 / 0 / 0

Регистрация: 24.12.2012

Сообщений: 21

03.01.2013, 00:29

 [ТС]

10

Цитата
Сообщение от crastin
Посмотреть сообщение

Не удивительно. После -o следует имя выходного файла
g++ -o test test.cpp
gcc -o test test.cpp -lstdc++

В Eclipse не писал, но стоило предполагать что это обертка вокруг gcc.
Какой список проблем остался, если все скомпилировалось? Никаких предупреждений о привидении типов?

Добавлено через 1 минуту
P.S.: И вообще православный способ под линукс это компиляция с Makefile’ом.

Сделал хелло ворлд проект, все компилируется и запускается как через консоль так и в эклипсе, но ошибки по прежнему подчеркивает в эклипсе.

C++
1
2
3
4
5
6
7
#include <iostream>
using namespace std;
 
int main() {
    cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
    return 0;
}

Код

Description	Resource	Path	Location	Type
Symbol 'cout' could not be resolved	test.cpp	/test/src	line 13	Semantic Error
Program "g++" not found in PATH			Preferences, C++/Build/Settings/Discovery, [CDT GCC Builtin Compiler Settings] options	C/C++ Scanner Discovery Problem
Symbol 'endl' could not be resolved	test.cpp	/test/src	line 13	Semantic Error
Symbol 'std' could not be resolved	test.cpp	/test/src	line 10	Semantic Error



0



бжни

2473 / 1684 / 135

Регистрация: 14.05.2009

Сообщений: 7,162

03.01.2013, 00:31

11

Цитата
Сообщение от Trurlol
Посмотреть сообщение

Program «g++» not found in PATH

так оно есть в PATH’e или нет?
eclipse перезапускал после установки g++?



0



0 / 0 / 0

Регистрация: 24.12.2012

Сообщений: 21

03.01.2013, 00:34

 [ТС]

12

Цитата
Сообщение от alex_x_x
Посмотреть сообщение

так оно есть в PATH’e или нет?
eclipse перезапускал после установки g++?

Не совсем понимаю насчет первого вопроса.
Конечно перезапускал.



0



alex_x_x

бжни

2473 / 1684 / 135

Регистрация: 14.05.2009

Сообщений: 7,162

03.01.2013, 00:53

13

запусти, и выложи результат, если eclipse запускаешь из консоли — создай новую

Bash
1
2
which g++
echo $PATH | tr ':' $'n'

ну это лайт-вариант, может быть в настройках eclipse’a какие-нибудь пути до парсеров поехали



0



Trurlol

0 / 0 / 0

Регистрация: 24.12.2012

Сообщений: 21

03.01.2013, 01:15

 [ТС]

14

Цитата
Сообщение от alex_x_x
Посмотреть сообщение

запусти, и выложи результат, если eclipse запускаешь из консоли — создай новую

Bash
1
2
which g++
echo $PATH | tr ':' $'n'

ну это лайт-вариант, может быть в настройках eclipse’a какие-нибудь пути до парсеров поехали

which g++
/usr/bin/g++

echo $PATH | tr ‘:’ $’n’
/usr/lib/lightdm/lightdm
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
/usr/games
/usr/local/games



0



0 / 0 / 0

Регистрация: 24.12.2012

Сообщений: 21

05.01.2013, 13:59

 [ТС]

15

В discovery options/Compiler invocation command прописал «g++» код перестал пестрить проблемными местами, но осталась одна ошибка «Program «g++» not found in PATH», парсер перепроверил, все в порядке. Код по прежнему без проблем компилируется и запускается. Уже можно работать, но эта ошибка меня смущает.



0



Вы указали gcc выходной файл, но не указали входной. Чтобы скомпилировать файл hello.c и получить в результате hello, нужно сделать так:

gcc -o hello hello.c

edigaryev ★★★★★

(31.10.10 22:00:47 MSK)

  • Ссылка

I am trying to compile some source code but I presented with the following error output after entering «make»:

mpicc -c -O3 -I        func_pointer.c
gcc: fatal error: no input files
compilation terminated.
make: *** [func_pointer.o] Error 4

I have seen other threads on this website relating to this error output (1, 2, 3). I was in fact experiencing a similar problem previously, which I think I may have solved, where the «make» command was producing:

make: Circular mod_prec.o <- mod_prec.o dependency dropped.
make: Circular mod_prec.o <- mod_prec.o dependency dropped.
make: Circular mod_prec.o <- mod_prec.o dependency dropped.
/usr/bin/cpp -P -C -traditional  -DIFORT -P -C -traditional    -DWET_DRY -DMULTIPROCESSOR    -DLIMITED_NO  -DGCN                                        mod_prec.F > mod_prec.f90
mpif90  -c  -O3 -I        mod_prec.f90
gfortran: fatal error: no input files
compilation terminated.
make: *** [mod_prec.o] Error 4

I followed the steps suggested on this website, which I think may have addressed that issue (I believe I am progressing further through the makefile). Those steps are as follows:

dan@Dan-office ~/FVCOM3.2.2/FVCOM_source $ which mpif90
/usr/local/bin/mpif90
dan@Dan-office ~/FVCOM3.2.2/FVCOM_source $ mpif90 -show
gfortran -I/usr/local/include -pthread -I/usr/local/lib -Wl,-rpath -Wl,/usr/local/lib -Wl,--enable-new-dtags -L/usr/local/lib -lmpi_usempi -lmpi_mpifh -lmpi
dan@Dan-office ~/FVCOM3.2.2/FVCOM_source $ mpif90 -V
gfortran: error: unrecognized command line option ‘-V’
gfortran: fatal error: no input files
compilation terminated.
dan@Dan-office ~/FVCOM3.2.2/FVCOM_source $ export MPI_LOC=/usr/local
dan@Dan-office ~/FVCOM3.2.2/FVCOM_source $ export MPI_INCLUDE="$MPI_LOC"/includedan@Dan-office ~/FVCOM3.2.2/FVCOM_source $ export MPI_LIB="$MPI_LOC"/lib
dan@Dan-office ~/FVCOM3.2.2/FVCOM_source $ export LD_LIBRARY_PATH=$MPI_LIB:$LD_LIBRARY_PATH
dan@Dan-office ~/FVCOM3.2.2/FVCOM_source $ export LIBMPI="-pthread -Wl -rpath -Wl -Wl,--enable-new-dtags -lmpi -lmpi_usempi -lmpi_mpifh -lmpi"

With an additional step of:

dan@Dan-office ~/FVCOM3.2.2/FVCOM_source $ make clean
/bin/rm -f *.o *.mod *.f90

Which brought me to where I am currently. My instinct is that the solution to my current problem will be similar to that of my previous problem. However, I am new to linux/c/fortran so I am not sure I fully follow the previous solution. As such the following commands produce the following output:

dan@Dan-office ~/FVCOM3.2.2/FVCOM_source $ which mpicc
/usr/local/bin/mpicc
dan@Dan-office ~/FVCOM3.2.2/FVCOM_source $ mpicc -show
gcc -I/usr/local/include -pthread -Wl,-rpath -Wl,/usr/local/lib -Wl,--enable-new-dtags -L/usr/local/lib -lmpi
dan@Dan-office ~/FVCOM3.2.2/FVCOM_source $ mpicc -V
gcc: error: unrecognized command line option ‘-V’
gcc: fatal error: no input files
compilation terminated.

Have I failed to correctly define some variables which is leading to this problem? I am conscious that this question is becoming rather long but I can add additional information if it is required such as the makefile (this is long though).

  • Fwd disc pkts ошибки что это
  • Fusion chef by julabo ошибка e01
  • Fusion 360 ошибка установки
  • Fusion 360 ошибка при запуске sign in failure
  • Fuse bad ошибка рефа