Linker Errors from Hell

Oh I love the time when you introduce some major changes into your code base which adds new dependencies, and you simply cannot get your code to link correctly on all platforms anymore. That's one of the really annoying part of C++. You are happy that you finally worked through hundreds of compilation errors (which you even aren't responsible for), and right when you fixed all of them, the linker aborts with a strange error, complaining that he cann't find a function you've never ever even have heard of. Or that there are multiple versions of some symbol. Or even a crash of the linker itself. Googling for the error messages usually reveals a handful of people with the same problem, but of course, also nobody was able to help them.

That's the time when I envy Java, C# and other high-level-language programmers. They never come across problems like this. I've now wasted two days already with this bullshit. Time to think about programming future software products in another language, maybe?

seven comments, already:

Indeed, C++ is a complex, slow-compiling, headache-causing behemoth. Nevertheless it’s the de-facto standard for realtime applications.

I’m peering at language D which seems to be a good replacement/supplement for C/C++. Even Andrei Alexandrescu is an advocate for D. The only drawback seems to be the meagre community.

http://dlang.org
hermitC () (link) - 16 08 12 - 10:58

Especially in the games business, C# appears to finally get more appreciation and acceptance. Microsoft have been trying to break the iron grip of C++ on game programming, and place C# instead, for years. Thanks to stuff like the Unity Engine, Photon Server etc., it finally seems to happen. I for one welcome that. So what if my C# application is, in some cases, like 1% slower. Writing it took me only about 60% of the time I would have needed to write in in C++.
Tazo - 16 08 12 - 13:28

I like c# personally, but I am looking into a language called Vala
https://live.gnome.org/Vala
http://en.wikipedia.org/wiki/Vala_(progr..)

Vala is similar to c# and has modern features, but compiles into C code (whilst still keeping all of the features such as objects). This means if you can compile C for an OS then vala will run on it
Red - 16 08 12 - 13:40

problems like these are usually a result of unclean code.
it is not a c++ problem, it is a problem of developers that put together peaces of code without knowing exactly what they do or having to less time to make a clean design.
when you resolve compiler and linker errors than you usually find always dirty stuff.
but ok, I agree , visual studio is often not very helpfull with its error messages, gcc and clang are much better
a4z - 16 08 12 - 18:29

a4z: unclean code? If you ever worked on a project with hundrets of thousands lines of code and more than a dozen dependencies to external libraries you would know that this simply happens.
hulu - 16 08 12 - 22:18

worked more than enough with huge projects
unclean code/ bad application/library/code design = problems from hell, it is that simple, not a problem of C++.
have also seen such projects been ported to other languages, result was problems from an other hell :-)
but I had also the luck to see well designed huge projects (component design, build management, testing and code coverage+ documentation) in C++ so I know the difference and I also know that most people have never seen or worked with huge well designed project in C++
a4z - 17 08 12 - 07:32

Well in the Java/JVM World you can run into class-loader/dependency hell on large projects. That also can take a lot of time to fix. But rarely days to fix.
Gamlor () (link) - 17 08 12 - 08:00


Name:  
Remember personal info?
yes
no
Email (optional):
URL (optional):
Enter "layered" (antispam):
Comment:Emoticons / Textile

  ( Register your username / Log in )

Notify: Yes, send me email when someone replies.  

Small print: All html tags except <b> and <i> will be removed from your comment. You can make links by just typing the url or mail-address.
Note: If you type in your email adress above, it will be visible to other visitors, although it will be hidden for bots using javaScript.