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


Автор: Кок 24.7.2008, 12:20
 Добрый день, всем кто откликнется! Сам занялся программированиеим, купил книгу Герберт Шилдт"базовый курс" при компилирование первой программыы возникло куча проблем надеюсь обратился по адресу! 

// myp1.h

#pragma once

using namespace System;

namespace myp1g /* программа номер один */
#include <iostream>
using namespase std;
//main () - начало выполнения программы.
int main () 
{
    cout << это моя первая программа.";
        return 0;
}

 все  списано с книги, дальше при компиляции как написано в книге выходит следующие:


Setting environment for using Microsoft Visual Studio 2005 x86 tools.

C:\Program Files\Microsoft Visual Studio 8\VC>cl -GX myp1.cpp
Microsoft ® 32-bit C/C++ Optimizing Compiler Version 14.00.50727.762 for 80x86

Copyright © Microsoft Corporation.  All rights reserved.

cl : Command line warning D9035 : option 'GX' has been deprecated and will be re
moved in a future release
cl : Command line warning D9036 : use 'EHsc' instead of 'GX'
myp1.cpp
c1xx : fatal error C1083: Cannot open source file: 'myp1.cpp': No such file or d
irectory

C:\Program Files\Microsoft Visual Studio 8\VC>

В чем проблема подскажите пожайлуста что не так делаю?


Автор: Walker 24.7.2008, 12:27
Ошибка:
Цитата

c1xx : fatal error C1083: Cannot open source file: 'myp1.cpp': No such file or directory

Ваш файл:
Цитата

myp1.h

Как говорится, почувствуйте разницу. Вместо файла с кодом С++ Вы создали http://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%B3%D0%BE%D0%BB%D0%BE%D0%B2%D0%BE%D1%87%D0%BD%D1%8B%D0%B9_%D1%84%D0%B0%D0%B9%D0%BB.
 smile Небольшое замечание на будущее. При оформлении сообщений, команд и программ в топике пользуйтесь, Пожалуйста, кнопкой Код.

Автор: CDell 24.7.2008, 12:28
Кавычку пропустил
 cout << "это моя первая программа.";

Автор: Кок 24.7.2008, 12:44

 Если я правильно понял то вместо myp1.cpp нужно писать myp1.h тогда получается следующие:
Setting environment for using Microsoft Visual Studio 2005 x86 tools.

C:\Program Files\Microsoft Visual Studio 8\VC>cl myp1.h
Microsoft ® 32-bit C/C++ Optimizing Compiler Version 14.00.50727.762 for 80x86

Copyright © Microsoft Corporation.  All rights reserved.

cl : Command line warning D9024 : unrecognized source file type 'myp1.h', object
 file assumed
Microsoft ® Incremental Linker Version 8.00.50727.762
Copyright © Microsoft Corporation.  All rights reserved.

/out:myp1.exe
myp1.h
LINK : fatal error LNK1181: cannot open input file 'myp1.h'

C:\Program Files\Microsoft Visual Studio 8\VC>


Автор: anatox91 24.7.2008, 12:45
если честно, не пойму зачем в первой же программе создавать пространство имен...

Автор: Кок 24.7.2008, 12:49
Я и сам не знаю, зачем прстранство. просто руководствуюсь книгой и это первый пример который нужно выполнить

Автор: Walker 24.7.2008, 12:59
Цитата

Если я правильно понял...

Неправильно. Компилировать следует как раз
Код

cl myp1.cpp

где myp1.cpp - название Вашего файла с кодом. Проверьте, так ли это.
ЗЫ. Замечание так и не учли. smile 

Автор: Annihilator 24.7.2008, 13:11
Цитата(anatox91 @  24.7.2008,  16:45 Найти цитируемый пост)
если честно, не пойму зачем в первой же программе создавать пространство имен...

У Шилдта так заведено  smile 

Автор: Кок 24.7.2008, 13:16
так  в первый раз же и было так сделано, за исключением опции GX но я так понял она не обязательна. А что именно проверить и где? а на счет замечаний так я не поиму чо и как надо писать, уж простите я вообще первый раз на форумах в и-нете! 

Автор: Walker 24.7.2008, 13:27
1. Опция GX не только необязательна, но и нерекомендуема. (См. warnings mess.)
2. Проверьте название файла, который Вы компилируете.
3. Над окошком, в котором Вы набираете пост имеется панель инструментов. Крайний справа элемент называется Код. При клике на нём выпадают варианты синтаксических подсветок. Выделяете цитируемый фрагмент текста в сообщении, выбираете подходящую подсветку синтаксиса, и код приобретает удобно читаемый вид.

Пример:
Код

#include <iostream>
using namespace std;
//main () - начало выполнения программы.
int main () 
{
    cout << "это моя первая программа.";
    return 0;
}

Автор: Кок 24.7.2008, 13:42
Значит в самой программе Visual Studio 2005 где я его писал, в папке Projects он называется myp1 может где-то у него другое название?

Автор: Walker 24.7.2008, 13:43
Расскажите по шагам, как Вы его создавали.

Автор: Кок 24.7.2008, 14:13
Дело было так: Открыл Visual Studio 2005  там нажал faile >new>projekt там выбрал какойто подпункт СLR? дал название файлу myp1 и в открывшемся окошке периписал с книги эту программу (изложенную в самом начале) и все потом сохранил и вот пытаюсь скомпилировать.
ОГРОМНОЕ СПАСИБО ВАМ ЗА ТО ЧТО ПОМОГАИТЕ МНЕ РАЗОБРАТЬСЯ!!!!!!

Автор: Walker 24.7.2008, 14:27
Пожалуйста! smile 
Так я и думал.
Выбирайте File->New Project->Win 32 Console Application. В поле Name задайте название проекта myp1. Откроется мастер. Менять ничего не нужно. Проверьте: Application type: Console Application. Additional Options: Precompiled header. Соглашаемся со всем. (Далее) ОК. Обратите внимание - на данном этапе у Вас в шаблоне уже подключен заголовочный файл stdafx.h. Можете открыть его из дерева проектов. Его содержимое - #pragma once и несколько заголовочных файлов. Соответственно, эти записи в ваш кодовый файл добавлять уже не нужно. Приведите Ваш myp1.cpp к следующему виду:
Код

#include "stdafx.h"
#include <iostream>
using namespace std;

int main () 
{
    cout << "Hello, World";
    return 0;
}

Запустите компиляцию.
Запустите программу.

Автор: Кок 24.7.2008, 15:16
Код

// myp2.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

#include <iostream>
using namespace std;

int main ()
{
    cout <<"hello world";
    return 0;
}



Написал вот так как в вверху только std, main, и cout у меня черного цвета а не синего.
Теперь дальше сохранять и компилировать или можно как-то сразу скомпилировать не выходя из редактора. И если компилировать то писать в коммандной строке нужно следующие?
cl myp2.cpp

Автор: Walker 24.7.2008, 15:50
Ах, вот оно что.smile
И как это я сразу не догадался - Вы используете студию в качестве текстового редактора с синтаксической подсветкой, а компилятор запускаете вручную из командной строки. Тогда проблема элементарно заключалась в том, что компилятор не имел представления, где лежит Ваш файл.
Обратите внимание - текущая директория
Код

C:\Program Files\Microsoft Visual Studio 8\VC

Ваш файл, скорее всего, находится не в ней. Вам нужно изменить директорию посредством команды cd. Где лежит Ваш файл? Когда Вы создавали проект. В поле Location можно указать папку для сохранения проекта. По умолчанию это
Код

C:\Documents and Settings\<UserName>\My Documents\Visual Studio 2005\Projects\<Project Name>

Начните поиск оттуда. Или просто найдите файл по имени. Перейдите к нему и скомпилируйте указанной выше командой.
Студия обладает средствами более высокого уровня, которыми грех не воспользоваться.
Из студии сборка запускается
Build->Build Solution
Программа
Debug->Start winthout debugging.

Автор: Кок 24.7.2008, 16:58
Ну тогда я не согрешил! и скомпилировал и запустил со студии и вроде получилось smile  вылезло черное окно где было написано hello world и нажмите любую кнопку для завершения это она (программа)? и еще один вопросик можно как ее теперь еще раз запустить, где ее найти?

Автор: Walker 24.7.2008, 22:05
Примите поздравления с начинанием! smile 
Запускайте точно также (Alt+F5).
exe-файл может находиться в папке проекта /bin/Debug или /bin/Release, если компилируете из студии и в той же директории, где находится кодовый файл, если компилируете из командной строки. Когда Вы узнаете о символьной отладочной информации, поймёте разницу между Debug и Release. А на данном этапе это не очень важно.
Успехов в обучении!
Ждём на форуме!
P.S. Пожалуйста, нажмите наверху ссылку "Пометить вопрос решённым".

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