It seems that I my program won't compile I get this error
The program file specified in the launch configuration does not exist C:\Users\User\workspaceforcpp\SDLTest\Debug\SDLTest.exe not found
but the strange thing is before I broke my code up into a more object orientated way by adding a header file and a file for screen,or in other words when I was running all the code from main it worked fine
I have also other projects with many header and cpp files and they compile just fine also
So this puzzles me as to why I am getting this error,it builds fine but no success,I have spent the last hour researching how to fix this problem and have found people with a similar problem to me but all the solutions didn't work,I tried rebuilding and cleaning the project,I also followed these steps from a user in a post I found
Right click on your project --> Properties Run/Debug settings Delete whatever is set as "launch configuration for '........' Project --> Clean Project --> Build Project
I have even tried deleting the object files and rebuilding and no success,I also checked the debug and release folder and I can't find a .exe in them,when I check my other programs not using SDL they all have a .exe in their debug or release folder
but to no avail,any suggestions?
I will post my code anyway even though as far as I know there is nothing wrong with my code
#include <iostream>
#include "Screen.h"
using namespace std;
using namespace amc;
int main(int argc, char* argv[])
{
Screen screen;
screen.init();
bool quit = false;
SDL_Event event;
while(!quit){
while(SDL_PollEvent(&event)){
if(event.key.keysym.scancode == SDL_SCANCODE_5){
cout << "5 pressed" << endl;
}
if(event.type == SDL_QUIT){
quit = true;
}
}
}
screen.close();
}
#include <iostream>
#include "Screen.h"
using namespace std;
namespace amc{
Screen:: Screen():
window(NULL),renderer(NULL),texture(NULL),buffer(NULL)
{
}
bool Screen:: init(){
if(SDL_Init(SDL_INIT_VIDEO) < 0){
return false;
}
window = SDL_CreateWindow("Particle eXplosion",SDL_WINDOWPOS_UNDEFINED,
SDL_WINDOWPOS_UNDEFINED,SCREEN_WIDTH,SCREEN_HEIGHT,SDL_WINDOW_SHOWN);
renderer = SDL_CreateRenderer(window,-1,SDL_RENDERER_PRESENTVSYNC);
texture = SDL_CreateTexture(renderer,SDL_PIXELFORMAT_RGBA8888,SDL_TEXTUREACCESS_STATIC,SCREEN_WIDTH,SCREEN_HEIGHT);
buffer = new Uint32[SCREEN_WIDTH * SCREEN_HEIGHT];
for(int i = 0; i < SCREEN_WIDTH * SCREEN_HEIGHT; i++){
buffer[i] = 0xFFFF00FF;
}
SDL_UpdateTexture(texture,NULL,buffer,SCREEN_WIDTH*sizeof(Uint32));
SDL_RenderClear(renderer);
SDL_RenderCopy(renderer,texture,NULL,NULL);
SDL_RenderPresent(renderer);
return true;
}
bool Screen:: processEvents(){
return false;
}
void Screen:: close(){
delete [] buffer;
SDL_DestroyRenderer(renderer);
SDL_DestroyTexture(texture);
SDL_Delay(9000);
SDL_DestroyWindow(window);
SDL_Quit();
}
}
#ifndef SCREEN_H_
#define SCREEN_H_
#include <SDL.h>
namespace amc{
class Screen{
private:
SDL_Window *window;
SDL_Renderer *renderer;
SDL_Texture *texture;
Uint32 *buffer;
public:
const static int SCREEN_WIDTH;
const static int SCREEN_HEIGHT;
public:
Screen();
bool init();
bool processEvents();
void close();
};
}
endif /* SCREEN_H_ */
edit** sorry about putting all the code in one block I'm still figuring out how to format properly,anyway the first part is main.cpp second is Screen.cpp and third is Screen.h
when I follow the steps
Right click on your project --> Properties Run/Debug settings Delete whatever is set as "launch configuration for '........' Project --> Clean Project --> Build Project
from Nenad Bulatovic from another thread on here when I run the program after all these steps I get launch failed,binary not failed
I have literally been at this for 24 hours and can't find whats wrong,there doesn't seem to be any clear cut solution
**edit #2
The program seems to build and compile fine without the so I'm guessing it's something to do with SDL but not sure what,
I tried putting the SDL.dll file in the projects folders both debug and release and even the root project folder but no success
here is what I get when I build it
14:31:28 **** Incremental Build of configuration Release for project SDL4 ****
Info: Internal Builder is used for build
g++ -o SDL4.exe Test.o Main.o -lmingw32 -lSDL2main -lSDL2
Test.o:Test.cpp:(.rdata$.refptr._ZN4Test12SCREEN_WIDTHE[.refptr._ZN4Test12SCREEN_WIDTHE]+0x0): undefined reference to Test::SCREEN_WIDTH'
Test.o:Test.cpp:(.rdata$.refptr._ZN4Test13SCREEN_HEIGHTE[.refptr._ZN4Test13SCREEN_HEIGHTE]+0x0): undefined reference to
Test::SCREEN_HEIGHT'
collect2.exe: error: ld returned 1 exit status
14:31:30 Build Finished (took 2s.361ms)
note I changed the name of the class from Screen to Test(new project) but exact same results
**edit #3
I tried installing a fresh copy of eclipse and still no luck I get the same message,I also tried adding the header file to each source file,the very strange thing is I can get a SDL program to compile and run but it has to be in a single file,I'm so confused at this point I have tried everything
these are the steps I followed initially https://www.caveofprogramming.com/c-for-complete-beginners/setting-up-sdl-windows.html
**edit #4
I also tried this link http://lazyfoo.net/SDL_tutorials/lesson01/windows/eclipse/index.php and still to no avail
**edit #5 still have not found the solution =(