[cpp] nie można skompilować pod windows 7

no więc mam taki problem…

ostatnio postanowiłem znowu wrócić do programowania w c++, tylko, ze nie mogę skompilować pliku pod dev-c++, code blocks i innymi tego typu. kod jest bardzo prosty, bo tylko chciałem sprawdzić, czy zadziała, więc błędu w nim nie ma. kiedy daje w każdym z tych programów kompiluj to niby jest ok, ale po prostu nic się nie dzieje. os - win7 rc x86

na viście działa ok ;/

Ja pod Windows 7 używam Visual C++ i zawsze mi wszystko działa. Możliwe, że masz starszą wersję GCC. Zaktualizuj. Jeśli nie pomoże to rozwiń skrót myślowy “nic się nie dzieje”.

hmmm… miałem na myśli, że po prostu niby odbywa się kompilowanie i wszystko ok, tzn tak mówią programy, ale potem wychodzi na to, że program nic nie zrobił i nie da się uruchomić programu…

zassałem sobie visual c++ 2008 express edition… jako iż nie mam praktycznie żadnego doświadczenia z tym programem z programowaniem w gole bardzo nikłe - jak pod tym skompilować i uruchomić program ?

A co próbujesz kompilować? Aplikację okienkową, konsolową?

konsolową - bo innych nie umiem… jeszcze :slight_smile:

Pojawia się w ogóle gdzieś w katalogu z projektem plik .exe?

Jak tworzysz aplikację konsolową w VC++?

Edit: rzuć kodem źródłowym.

no właśnie plik *.exe się nie pojawia…

to może rzuci ktoś linkiem albo powie jak skompilować jakąś aplikację pod vc++… albo napisze tutaj…

kodu nie daje, bo na razie nie mam dysku z moimi byłymi projektami i testuje rożne środowiska programistyczne na programie typu “hello world” xD

No i właśnie o to mi chodziło - skoro nawet “hello world” się nie kompiluje, to od niego trzeba zacząć.

Jak w VC++ dajesz nowy projekt->Win32->Win32 console application (odznaczasz przy tworzeniu “precompiled header”), to dostajesz taki kod:

#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])

{

	return 0;

}

Wyrzucasz pierwszą linię (includa), a pierwszą (po wyrzuceniu includa będzie to main…) linię zmieniasz tak:

int main(int argc, char* argv[])

Oprócz tego wyrzucasz z projektu pliki: stdafx.h, targetver.h, stdafx.cpp.

Zostawiasz tylko ten jeden z kodem.

Taki plik powinien się skompilować wszędzie.

W VC++ domyślnie pojawi się w katalogu projektu\Debug.

W Dev-C++ też tworzysz aplikację konsolową i wpisujesz ten kod co w VC++.

Po kompilacji w katalogu projektu też powinien się pojawić exe.

Oprocz tego w Dev-C++ masz na dole zakładkę “Compile Log” - tam powinno być info co kompilator robił przy budowaniu.

W VC++ jest “Output”.

U mnie, na XP w obu środowiskach program się buduje - oczywiście nic nie wyświetla, ale jest uruchamiający się exe.

Dev-C++ 4.9.9.2, ale pewnie w WxDev-C++ tak samo jest.

może jestem jakoś wyjątkowo tępy ale zapytam… gdzie w vc++ jest przycisk kompiluj?

Build->Build solution albo F7;)

czyli że według tego powinno być coś takiego

int _tmain(int argc, _TCHAR* argv[]);


{

std::cout << "test";

   return 0;

}

i wywala błędy:

1>------ Build started: Project: test, Configuration: Debug Win32 ------

1>Compiling...

1>test.cpp

1>e:\dokumenty\c++\test\test\test.cpp(4) : error C2061: syntax error : identifier '_TCHAR'

1>e:\dokumenty\c++\test\test\test.cpp(6) : error C2447: '{' : missing function header (old-style formal list?)

1>Build log was saved at "file://e:\Dokumenty\C++\test\test\Debug\BuildLog.htm"

1>test - 2 error(s), 0 warning(s)

========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

co nie tak?

Powinno być coś takiego:

int main(int argc, char* argv[])

{

   return 0;

}

d.evil - dzięki za pomoc… zrobiłem po swojemu i działa…

#include 

int main()

{

std::cout << "test" << std::endl;

system("pause");

}

tylko pytanie początkującego - po co dawać return 0; i int main(int argc, char* argv[])

Nie zrobiłeś po swojemu, tylko okroiłeś parametry;)

Miał być najprostszy kompilujący się program i był;) Dodałeś wyświetlanie tekstu.

int main(int argc, char* argv[])

Pozwala na przekazanie programowi parametrów w trakcie wywołania.

A int i return - dzięki nim program coś może zwrócić na zewnątrz.

Napisałem Ci tak, żeby się skompilowało i w VC++ i w Dev - gdybyś dał “void main…”, to GCC w Dev będzie się pluł i nie skompilujesz;)

Jeśli mogę się wtrącić…

Jak zrobić Hello World w Visual C++, tak aby był on w C++: