Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
Get a devDuck
Rubber duck debugging has never been so cute! Get your favorite coding language devDuckBuy Now
Search - "mingw"
So I'm writing some multithreaded shit in C that is supposed to work cross-platform. MingW has Posix threads for Windows, so that saved already half of the platform dependency. The other half was that these threads need to run external programs.
Well, there's system(), right? Uhm yes, but it sucks. It's incredibly slow on Windows, and it looks like you can have only one system() call ongoing at the same time. Which kinda defeats the multithreaded driver. Ok, but there's CreateProcessA(), and that doesn't suck.
Fine, now for Linux. The fork/exec hack is quite ugly, but it works and is even fast. Just never use fork() without immediate exec(). First try under Cygwin... crap I fork bombed my system! What is this shit? Ah I fucked up the path names so that the external executable couldn't be run.
Lesson learnt: put an exit() right after the exec() in the path for child process. Should never be reached, but if it goes there, the exit() at least prevents a fork bomb.
Well yeah, sort of works under Cygwin, but only with up to 3 threads. Beyond that, it seems like fork() at some point gives two processes the same PID, and then shit hangs.
Even slapping a mutex around the fork and releasing it only in the parent process didn't help. Fork in Cygwin is like a fork in the ass. posix_spawn() should work better because it can be mapped more easily to the Windows model, but still no dice.
OK, testing under real Linux. Yeah, no issues with that one! But instead, I get some obscure "free(): invalid size" abort. What the fuck would that even mean?! Checking my free() calls: all fine.
Time to fire up GDB in the terminal! Put a catch on the abort signal, mh got just hex data. Shit I forgot to compile with -O0 and -g. Next try. Backtrace shows the full call trace, back to the originating line in my program - which is fclose() on a file.
Ahhh I remember! Under Linux, fclosing a file that is already closed makes the program crash. So probably I was closing it twice. Checking back.. yeah that's where it was.
Shit runs fast on several cores now!8
So... C++... Yeah.
> Manage to get a MinGw compiler working in VSCode, and all is "well and good".
> Have difficulties installing SDL, follow tutorial verbatim.
> Compile error.
> 7 hours later no progress.
> 10 hours later no progress.
> 16 hours later no progress.
*Throws laptop at wall*5
Fuck. I just want to fucking use OpenCV on CLion on Windows. Why the fuck do I need twenty fucking PhD's in quantum rocket science to set up a simple project with Cmake?
During the time I just wasted trying to get the correct library to link properly, I could have rewritten all of Tesla's fucking CV functionality from scratch, but instead here I am spending literal fucking hours googling why the fuck does 'recursive_mutex' not name a fucking type in namespace 'std' on mingw.
Fuck C++ I'm going back to C# where I can literally install OpenCV and all of its fucking dependencies from nuget with ***ONE*** fucking click.6
Why the fuck does Windows still not have a fcking decent package manager?
I hear you "but but but, there is Chocolatey, it's great, try it!". Well yeah if you only want binaries.
But I do need to, you know, develop and compile things, and without includes, code, and a reliable way to produce working binaries from that, it's useless.
Guess who needs to download dependencies one by one, compile them one by one?
Don't get me started on broken MinGW, or the "recommended" way of doing a bat script to have proper includes (what the hell, that's the entire purpose of env variables), or the fact that there is NO convention on where to install things.1
Fuck++ I C only red error messages which make me god damn furious. Why is it such a pain in the ass to ./configure this stupid external lib to work on Windows on MinGW and Qt Creator? Why can't I just pip install that crap and import from a single line of code instead of getting fucked several hours without even realising what's fisting me that hard?
You are penetrating me C++. I'm not happy with that. I can't figure it out cause the docs are crap.
Just add the path to the libs they say. Just add the include directory they say. It's damn easy they say.
You know what? IT'S A FUCKING PAIN IN THE AS I SAY! DAMN IT.
When /W4 in Visual Studio (cl) shows more (and more helpful) information than /Wall /Wextra /pedantic in gcc (MinGW)....
I was not expecting that....9
Can someone explain linux to me? I can't see through Unix, Linux, GNU, mingw and all those things which somehow seem to be in the same context but i would like a tl;Dr to save my time :)2
For fucks sake Windows. Why can't you just fucking have a sane terminal without fucking with everything.
Installing and using MinGW and CMake is enough of a pain when in a slow VM.
Does curses even work with color in Windows!? The best I've gotten is a shade of grey, and white, and I can't even get the grey back!
i compiled an app on mingw on linux, for windows using qt4, when trying to run it on windows it crashes with no understandable error, i installed wine and tried to run it there, got a proper error message, it was missing dlls
before someone tells me, i know i need a debugger, I'm just hello worlding around to check that i have all headers and libs in place on both linux native and mingw
This question might make you lose a brain cell because of stupidity in the question. Read with caution
Is there a way to compile a game for Windows from Linux in Unreal engine? I did google some posts but the answer was either use a Virtual machine which will not be done or use the the theoretical method of using mingw but the forum posts state that it will be tricky business or use a windows machine. I have dual booted windows with linux on my machine.
However since the machine has a 512 gb ssd most of the storage space is devoted to unreal engine which takes 47 gigs in itself and have a lot of programs installed I have a usable 20 gigs left out of 145 gig partition. Windows has around 318 gigs of storage to it but I have 100 gigs free at most. So after installing the windows sdk, visual studio with extensions, unreal engine and some other stuff I don't have much space left for myself. I need that much space since I install a lot of games to my ssd. So now I cant load my bigger projects for playing on my windows. I could use my hdd which is mostly used for backups and 100+ gig stuff. Though the hdd's are of course far slower than ssd's which shouldn't be a problem however last time I used visual studio it ate more than 2 gigs of ram for a solution meaning that the compiler has very low memory for itself to actually compile so for any large files the hdd has more of a bottleneck.
Oh and I can't upgrade my ssd's or ram because I don't have enough money.
Thanks for the answers in advance5
Today, I came across a real problem.
A friend of mine asked me how could she could compile and rum programs. I just gave her Linux to install, which she just couldn't.
Then I gave her codeblocks and dev c++, which she couldn't work on, due to some error.
thereafter I just to make sure, installed turboc and mingw, and made it work. but unfortunately still, she couldn't make it work when she went home.
Now, either her laptop is piece of pure shit, or I'm not just the right guy fit for technical support.
Is developing on Windows equivalent to squaring the circle? Yeah, obligatory windows bad circlejerk I know.
I’ve been developing a QT5 application for 2 weeks now on my main Linux system. Now, I wanted to make a Windows port for my friends to try.
I install QtCreator on Windows since it’s what I used on Linux. First time setup, I was forced to create an account; I was kind of pissed off but no biggie, I just put “Fuck you” on every credential possible. That’ll teach em.
Now, I needed a decent compiler. Visual Studio is a no go because why the fuck is it so big; also last I checked this thing barely supports C99. So I went with MinGW64 and MSYS2 and made a kit of it. I also went with that because it was the easiest way to get the latest version of GSL and MathGL without having to compile it. Also, the fact that MSYS2 had pacman was pretty nice.
I couldn’t get the thing to work for the whole day until I realized that my kit was pointing to the wrong compiler, turns out msys64/mingw64/bin/g++ and msys64/usr/bin/g++ are two different things. Ok whatever
Now, I just need to hunt down all the .a files and throw it in the LIBS option to get the libraries to work.
I finally made a successful build. Only to find that the application did absolutely nothing. I went with copy pasting the dlls into where the exe was located and launching it manually only to find the error “Application could not start correctly”
Yeah, I might be a retard but fuck you Windows. All I had to do on linux was just install qtcreator on my package manager and let the library dependencies be handled automatically and I could start doing my work right away.6
*Solve this question*
*Question- Fek just solve me :v*
*Me: GCC would give correct ans*
*Question- Fuck no, Mingw ;_; *