←back to thread

228 points Retro_Dev | 3 comments | | HN request time: 1.487s | source
Show context
90s_dev ◴[] No.44464923[source]
I don't mind breaking changes if I can fix them within a day.

What bothers me with C/C++ is how difficult it is to cross compile a simple Windows + SDL app from inside WSL without MSVC installed.

I've spent weeks on this.

If Zig saves me from that nightmare, and still lets me use C++ libraries, I will gladly switch over to it.

replies(3): >>44464991 #>>44465628 #>>44472217 #
PaulDavisThe1st ◴[] No.44465628[source]
None of which has anything to do with C++ the language.
replies(3): >>44465762 #>>44466008 #>>44467927 #
flohofwoe ◴[] No.44466008[source]
That doesn't matter much when it's specifically the C/C++ compiler vendors who don't care about fixing the cross-compilation problem. It would be trivial for C/C++ compiler vendors to make cross-compilation as simple as with the Zig toolchain, but they don't care about the topic and that's why it doesn't happen.

Fast forward a few decades to today and the best solution to cross-compile C/C++ projects is the Zig toolchain (and isn't that kinda weird? A "foreign" toolchain coming along fixing one of the biggest problems in the C/C++ ecosystem just like that as a "side quest"?)

replies(2): >>44466584 #>>44466792 #
1. 90s_dev ◴[] No.44466792[source]
\<rant>

From all that I've experienced in the past few weeks dealing with C projects and various build systems and operating systems, I suspect that using Zig would work perfectly as an easy cross-platform alternative to CMake. Until I open up my code in VS Code and the C/C++ plugin just doesn't work, no auto-completion, no go-to-definition, syntax highlighting is broken, etc., and all because it can't find the files in places it ordinarily expects them to be. And maybe there will be some hacky way to fix it with a setting for the VS Code plugin, but likely not.

I'm not saying this is the case, but literally none of the setups I tried feels non-hacky so far, and every one of them has at least one noticable problem during development. I truly miss the days of writing apps for a single platform using its own native build tools. Maybe that's what I'll do: write this as a native Windows app using Visual Studio (ugh, such an awful editor though) and then if I get sales, port it to Mac OS X 10 using Xcode.app, and compile it for Linux inside WSL with GCC 15.

\</rant>

replies(1): >>44468857 #
2. PaulDavisThe1st ◴[] No.44468857[source]
Pretty sure that Visual Studio is not a crossplatform toolkit. Why would you start there?
replies(1): >>44469982 #
3. 90s_dev ◴[] No.44469982[source]
Maybe I worded it wrong. I want to develop my app in VS Code. I have gotten so very used to everything about how VS Code works over the past 10 years, that Visual Studio feels so unintuitive and backwards and weird. But VS is the king of C development on Windows apparently. That said, I've made some progress getting VS Code to work with the official Microsoft plugins for both C/C++ and CMake, both inside WSL and outside of it, though nothing that doesn't feel somewhat hacky.