Mohl by mi někdo pomoc jak rozjet tento projekt? Používám Codeblocks a gcc. Hází mi to děsně mnoho chyb.
soubory k projektu:
(soubory ke stažení: quickcg.cpp, quickcg.h, main.cpp)
sdl:
https://www.libsdl.org/download-1.2.php
(stáhl jsem verzi 1.2 pro Windows ale v tom projektu asi používají starší)
Další soubory do projektu jsou ke stažení zde:
http://lodev.org/cgtutor/fourier.html
(fourier2d.cpp, fourier1d.cpp)
include SDL jsem upravil:
#include "SDL/include/SDL.h"
přidal jsem soubor SDL.dll do linkeru
A teď upozornění co dostávám:
quickcg.cpp|1573|warning: suggest parentheses around '-' in operand of '&' [-Wparentheses]|
static unsigned long readBitFromReversedStream(size_t& bitp, const unsigned char* bits) { unsigned long result = (bits[bitp >> 3] >> (7 - bitp & 0x7)) & 1; bitp++; return result;}
quickcg.cpp|1585|warning: suggest explicit braces to avoid ambiguous 'else' [-Wparentheses]|
if((colorType == 2 || colorType == 4 || colorType == 6)) if(!(bd == 8 || bd == 16)) return 37;
else if(colorType == 0) if(!(bd == 1 || bd == 2 || bd == 4 || bd == 8 || bd == 16)) return 37;
else if(colorType == 3) if(!(bd == 1 || bd == 2 || bd == 4 || bd == 8 )) return 37;
else return 31; //unexisting color type
(hláška odkazuje na druhý řádek)
chyby:
fourier2d.cpp|53|multiple definition of `SDL_main'|
int main(int /*argc*/, char */*argv*/[]) {
(následující se asi týká hlavičky main)
ke stejnému řádku:
fourier1d.cpp|52|first defined here|
53|multiple definition of `fRe'|
52|first defined here|
fourier1d.cpp|73|first defined here|
if(keyPressed(SDLK_m)) {for(int x = 0; x < n; x++) if(x == n / 2 + 8 || x == n / 2 - 8) fRe[x] = p1 * 4; else fRe[x] = 0; changed = 1;} //sin*sin
stejná chyba:
calculateAmp(N, fAmp, fRe, fIm);
print("Press a-z to choose a function, press the arrows to change the imaginary part, press space to accept.", 0, 0, RGB_Black);
if(keyPressed(SDLK_d)) {for(int x = 0; x < n; x++) {if(x < 28 || x > N - 28) {FRe2[x] = FRe[x]; FIm2[x] = FIm[x];} else FRe2[x] = FIm2[x] = 0;} changed = 1;} //LP
Poslední chyba:
ld.exe||cannot find -lSDL.dll|
všechny chyby se týkají souboru fourierld.o
podotýkám, že poprvé na Codeblocks spouštím c++, předtím jsem dělal C++ jen ve Visual Studiu a C čko na Codeblocks.