Welcome, Guest. Please login or register. Did you miss your activation email?

Author Topic: Other people can't run my programs...  (Read 11125 times)

0 Members and 2 Guests are viewing this topic.

silentbt2deadly

  • Newbie
  • *
  • Posts: 1
    • View Profile
Other people can't run my programs...
« on: August 13, 2013, 03:54:37 am »
I've been learning some SFML, and I tried to send it to someone who doesn't use it. Unfortunately, he had the error: 'MSVCP110D.dll is missing' (I believe). I found it, and he downloaded it, which fixed that problem, but now the error: 'The application was unable to start correctly (0xc000007b)'. Does anyone know why I'm having these problems sending the programs to people? (P.S. I've set the Preprocessor to static.).

Clockwork

  • Newbie
  • *
  • Posts: 47
    • View Profile
Re: Other people can't run my programs...
« Reply #1 on: August 13, 2013, 05:04:34 am »
I had this problem as well.  There are several dll files that you need.  I always just end up putting them directly in the file with your exe in it.  You need:

    libsndfile-1.dll
    msvcp110.dll (I have 110 becaues I'm using VC 11 compiler)
    msvcp110d.dll
    msvcr110.dll
    msvcr110d.dll
    openal32.dll

It seems like you know where the msvcp and msvcr files are.  The lbsndfile-1.dll and openal32.dll is located in the SFML-2.1/bin folder.

If you just add those to the folder it should work on other computers!
Good luck with your project.  ;)

eXpl0it3r

  • SFML Team
  • Hero Member
  • *****
  • Posts: 11030
    • View Profile
    • development blog
    • Email
Re: Other people can't run my programs...
« Reply #2 on: August 13, 2013, 11:00:55 am »
The proper way to deal with missing Microsoft DLLs is to install the used redistributable. Depending on what version of Visual Studio you're using, you'll need a different package.

Btw. from licensing perspective you're not allowed to distribute the MSVC DLLs directly, you have to ship the redistributable or link to it. ;)
Official FAQ: https://www.sfml-dev.org/faq.php
Official Discord Server: https://discord.gg/nr4X7Fh
——————————————————————
Dev Blog: https://duerrenberger.dev/blog/

binary1248

  • SFML Team
  • Hero Member
  • *****
  • Posts: 1405
  • I am awesome.
    • View Profile
    • The server that really shouldn't be running
Re: Other people can't run my programs...
« Reply #3 on: August 13, 2013, 04:44:28 pm »
Examples by Microsoft: http://msdn.microsoft.com/en-us/library/ms235285.aspx

What's even more stupid if you ask me, according to http://msdn.microsoft.com/en-us/library/aa985618.aspx if you build your application and link it against a debug library, Microsoft prohibits distribution of your application itself, even if you send useless copies of it around that cannot be run by themselves. The debug libraries I can understand, but merely dynamically linking against the libraries, which means none of their code is really part of your program, allows them to dictate what you are allowed to to with your own code. This might motivate people to use FOSS libraries more if they knew. And they said that the GPL was a viral license... funny now that I think of it.
SFGUI # SFNUL # GLS # Wyrm <- Why do I waste my time on such a useless project? Because I am awesome (first meaning).

eXpl0it3r

  • SFML Team
  • Hero Member
  • *****
  • Posts: 11030
    • View Profile
    • development blog
    • Email
Re: Other people can't run my programs...
« Reply #4 on: August 13, 2013, 04:59:09 pm »
This might motivate people to use FOSS libraries more if they knew. And they said that the GPL was a viral license... funny now that I think of it.
Unfortunately not everything there is nice either. If you link dynamically against libstdc++ or libgcc and ship those DLLs you'll have to provide a package that includes the source code of libstdc++ (~50+ MB) and no you can't just simply point to GNU's FTP servers. (Source)
Also I still don't like that GPL can "inject" itself into your application and tries to turn anything it touches into GPL as well. (Not a legal expert, so I don't really understand how things work).

The whole licensing stuff is really bad on both sides and I wish there was a TRULY free option.  :-\
Official FAQ: https://www.sfml-dev.org/faq.php
Official Discord Server: https://discord.gg/nr4X7Fh
——————————————————————
Dev Blog: https://duerrenberger.dev/blog/

FRex

  • Hero Member
  • *****
  • Posts: 1848
  • Back to C++ gamedev with SFML in May 2023
    • View Profile
    • Email
Re: Other people can't run my programs...
« Reply #5 on: August 13, 2013, 05:48:52 pm »
Quote
if you build your application and link it against a debug library, Microsoft prohibits distribution of your application itself, even if you send useless copies of it around that cannot be run by themselves.
Quote
Unfortunately not everything there is nice either. If you link dynamically against libstdc++ or libgcc and ship those DLLs you'll have to provide a package that includes the source code of libstdc++ (~50+ MB) and no you can't just simply point to GNU's FTP servers. (Source)
fsf and microsoft keep achieving great breakthroughs in the field of limitless stupidity. fsf and stallman understandably more since they 'are not ruled by money' so they don't have to even listen to end users but microsoft isn't much better.

Quote
The debug libraries I can understand, but merely dynamically linking against the libraries, which means none of their code is really part of your program, allows them to dictate what you are allowed to to with your own code.
That actually sounds exactly like GPL except ms tells you not to distribute it when GPL forces you to give it all up under GPL. ;D

Quote
The whole licensing stuff is really bad on both sides and I wish there was a TRULY free option.  :-\
osi lists licenses that provide real freedom(not freedom to get robbed by fatass stallman out of your (c)) of owning your own code, being credited for your work, etc. don't mind GPL being on the list too :P it's list of open source licenses, but the ones that are not copyleft aren't viral, like zlib(that is a bit too much freedom, being allowed to not give credit when not distributing sources), mit(my fav.), etc. LGPL is actually quite ok too, because it allows linking, and lzma sdk has a kind exception that static linking is allowed without infecting the code with (L)GPL when there are no changes from original code.
http://opensource.org/licenses
« Last Edit: August 13, 2013, 05:58:46 pm by FRex »
Back to C++ gamedev with SFML in May 2023

binary1248

  • SFML Team
  • Hero Member
  • *****
  • Posts: 1405
  • I am awesome.
    • View Profile
    • The server that really shouldn't be running
Re: Other people can't run my programs...
« Reply #6 on: August 13, 2013, 06:20:42 pm »
In reality, until GNU takes over Windows, there is no real advantage to dynamically link libstdc++ on Windows, in fact, this is such a headache it is not worth doing even if there was an advantage. One could argue that it is advantageous to link dynamically to ease upgrading the library to some newer version to incorporate security updates (like that is common with libstdc++...) or some performance improvements, however, this is Windows we are talking about. Unless there is a notification icon in your task bar or a bunch of popups annoying the #$&@%* out of you, you are unlikely to upgrade your Microsoft runtimes either... If you cared enough, you would statically link libstdc++ into your application and inform the user that an update is available every time something important changed in libstdc++. They are more likely to comply with that than a Microsoft updater (my experience when talking to people).

Also I still don't like that GPL can "inject" itself into your application and tries to turn anything it touches into GPL as well. (Not a legal expert, so I don't really understand how things work).
libstdc++ is licensed under GPL with an exception so that GCC can produce proprietary applications that link to it. This essentially means that when statically linked, any GCC compiled application is free to be licensed under whatever terms you want and distributed under said terms as well. See this as a sort of GCC promotion.

Any other library that is licensed under the GPL (not LGPL) or AGPL was probably done so on purpose, as Richard Stallman describes "as a matter of strategy". Basically, if you know for sure that your sort algorithm runs 100x faster than Microsoft's on all platforms and you want to give GPLed software and only GPLed software an advantage over software that have to use the slower proprietary library then you should license your algorithm under GPL as well. If you know that your sort algorithm is more or less just as fast, you can release it under LGPL as a GPL without the "viral" nature.

The whole idea is that you are free to choose which library you use. GPL doesn't "inject" itself into your application, it's only trying to say "if you want to take advantage of our freely provided software, please contribute back to the community as well". If you don't want to use a GPL library you don't have to. If your intention is to make money off the licensing of your application, then yes, you should look elsewhere.

The whole licensing stuff is really bad on both sides and I wish there was a TRULY free option.  :-\
There is a reason why the Free Software Foundation was named as such. They are probably not as free as e.g. zlib, however, they also care about protecting the freedom of others who are not immediately part of the development process. This comes at the cost of some freedom for a single individual, however the idea is that the freedom of the community should be protected above all.

Quote
The debug libraries I can understand, but merely dynamically linking against the libraries, which means none of their code is really part of your program, allows them to dictate what you are allowed to to with your own code.
That actually sounds exactly like GPL except ms tells you not to distribute it when GPL forces you to give it all up under GPL. ;D
Forcing you to license under GPL is still better than preventing you from distributing at all. And if that is what the library author wanted, then so be it. Even if you intended on releasing your code a la GPL, zlib or similar, Microsoft can still prevent you from distributing your executable this way.

You can compare this to human rights, zlib would be something like "Here is a knife, do whatever you want with it, as long as you don't pretend to be me.", whereas GPL would be something like "I promise not to inhibit your freedom of speech as long as my freedom of speech cannot be inhibited as well.". There is no ultimate freedom, to protect freedom you need to inhibit others from taking it away.
SFGUI # SFNUL # GLS # Wyrm <- Why do I waste my time on such a useless project? Because I am awesome (first meaning).

FRex

  • Hero Member
  • *****
  • Posts: 1848
  • Back to C++ gamedev with SFML in May 2023
    • View Profile
    • Email
Re: Other people can't run my programs...
« Reply #7 on: August 13, 2013, 06:55:08 pm »
Quote
there is no real advantage to dynamically link libstdc++ on Windows
Do you have any idea how heaps work in dlls and exes? Do they are share same heap so there are no problems in new and delete across in both static and dynamic? I'm not being sarcastic, I really don't know. ;D

GPL is just too much, just too much, code that doesn't have anything to do with it but was compiled into single executable, and every single module of that code, even if you use GPL xml parser to parse settings for renderer that has 3205205 features, you must give up all the code for every feature and if you ever write a game using that renderer you must give it up too(maybe there is a way to make your code into zlib or mit libs that you link to exe to which you link GPL crap and then you could use your code in closed project in future if you didn't use GPL again then, but really, such brutal changes for just using a stupid shared lib because some fatass made up super viral license..). LGPL is first semi-acceptable thing.

Quote
Any other library that is licensed under the GPL (not LGPL) or AGPL was probably done so on purpose, as Richard Stallman describes "as a matter of strategy". Basically, if you know for sure that your sort algorithm runs 100x faster than Microsoft's on all platforms and you want to give GPLed software and only GPLed software an advantage over software that have to use the slower proprietary library then you should license your algorithm under GPL as well. If you know that your sort algorithm is more or less just as fast, you can release it under LGPL as a GPL without the "viral" nature.
Yes, I read that, it's basically: can you troll devs and make their jobs harder and force wheel reinvention if you make it GPL? If yes, go GPL. This is really bad, promotes reinventing the wheel and makes people cold towards anything that is os or free... Really, who is going to use that GPL algorithm? Would Laurent use it for SFML? Would anyone use it for their library, which they intend on making zlib, LGPL, mit or something licensed? Would some big company use it like for example apple uses libcurl? Would a game dev use it*?
NO.
Pretty much only academics(=morons) or other GPL programmers can use it. This is really bad, it's not freedom, it's basically cutting off the rest of the world.

*Altho I understand why QC which is on Doom 3 engine and is GPL with it, because if someone intended on pirating the game they'd probably not build and link a ton of c++ code ;D ;D but just go to tpb which has almost every worthwhile game on it anyway. That is one of few things that make sense actually. But no big (game) company will give out freebie code to competition and no open lib author that wants to attract wide audience would go open source with GPL.
Back to C++ gamedev with SFML in May 2023

Clockwork

  • Newbie
  • *
  • Posts: 47
    • View Profile
Re: Other people can't run my programs...
« Reply #8 on: August 14, 2013, 03:45:21 am »
Oh, wow, ok. All of that is definitely good to know!

binary1248

  • SFML Team
  • Hero Member
  • *****
  • Posts: 1405
  • I am awesome.
    • View Profile
    • The server that really shouldn't be running
Re: Other people can't run my programs...
« Reply #9 on: August 14, 2013, 06:59:30 am »
Do you have any idea how heaps work in dlls and exes? Do they are share same heap so there are no problems in new and delete across in both static and dynamic? I'm not being sarcastic, I really don't know. ;D
No idea what you just said.

GPL is just too much, just too much, code that doesn't have anything to do with it but was compiled into single executable, and every single module of that code, even if you use GPL xml parser to parse settings for renderer that has 3205205 features, you must give up all the code for every feature and if you ever write a game using that renderer you must give it up too(maybe there is a way to make your code into zlib or mit libs that you link to exe to which you link GPL crap and then you could use your code in closed project in future if you didn't use GPL again then, but really, such brutal changes for just using a stupid shared lib because some fatass made up super viral license..). LGPL is first semi-acceptable thing.
There is probably a non-GPL licensed library equivalent of most significant GPL licensed libraries out there at the moment. You don't have to use the GPL library if you don't want to. It will still run on Linux, Mac OS and Windows without any extra effort. If you do choose to use a GPL library, it doesn't mean you forfeit your rights of ownership to your code forever, you can still reuse your own code (since it is truly yours) in future non-GPL projects, providing the code you reuse does not make use of any GPL library features. If what you said was true, it would mean you wouldn't be allowed to change the license of your code after you released it under GPL for the first time, and this is obviously not the case.

Yes, I read that, it's basically: can you troll devs and make their jobs harder and force wheel reinvention if you make it GPL? If yes, go GPL. This is really bad, promotes reinventing the wheel and makes people cold towards anything that is os or free...
GPL makes you reinvent the wheel... yeah if you insist. Instead of using other existing libraries that get the job done as well, you are forced to reimplement the GPL code in your own application just so you can benefit from what it's author deemed as an advantage they had over non-GPL implementations without respecting their choice of a licence. There is a word for this: piracy. If you ever do this, don't come running to me when FSF lawyers show up at your doorstep.

And maybe you didn't realize yet, but the Linux kernel is licensed under GPL. Yes this must be a surprise but pretty much all high capacity servers accessible through the internet are running some form of Linux or derivative thereof. People must be really cold towards that... definitely.

Really, who is going to use that GPL algorithm? Would Laurent use it for SFML? Would anyone use it for their library, which they intend on making zlib, LGPL, mit or something licensed? Would some big company use it like for example apple uses libcurl? Would a game dev use it*?
NO.
The answer is simple: those who can afford to use it. And no, I don't mean afford in monetary terms, I mean afford in the context of wanting to release their code under GPL as well anyway.

A simple example: You could release the code under a proprietary licence, simple no-redistribution copyright, for whoever wants to use it. When some company comes up to you and asks you for a licence to use your code in their project, you ask them: will you plan to release your source code when you distribute your application and makes others do the same? If the answer is no, you don't give them the licence. If it is yes, you do. GPL is as simple as that. The only people who really complain about it are those who have nothing better to do i.e. Microsoft executives or the people who envy some feature of a GPL library that isn't available anywhere else. Most big game developers can't care less if some random code on the internet gets licensed under GPL or not, in the end it doesn't effect them because chances are their competitors aren't using GPL either. Hell, if the game developer was really scared of their GPL competition gaining an advantage over them because of the GPL library, they are also able to go to the library developer and offer them money for an alternate licence to use their library, yes... this is a possibility not many GPL haters know about.

So many misconceptions... too much hate. A bit of acceptance goes a long way. Just accept the fact that the GPL community likes to share their code among themselves and anyone who wants to contribute to it as well. The GPL people also don't go whining the whole day because some proprietary library wasn't released under GPL do they... no they just put up with it.

Pretty much only academics(=morons) or other GPL programmers can use it. This is really bad, it's not freedom, it's basically cutting off the rest of the world.
Yeah... I guess Alan Turing, Ken Perlin, Bjarne Stroustrup, Tim Berners Lee, Bob Kahn, Vint Cerf, Linus Torvalds, Edsger Dijkstra, Ron Rivest, Claude Shannon, Jack Bresenham, Edgar Codd and many many others were all morons. They were in fact so moronic, they didn't demand a single cent for all their work which makes it possible for you to type these words forsaking them. Be aware, a license like GPL is not required to publish academic papers since all of GPLs values are inherently present once a paper gets published (conveying modified versions, attribution etc.). If they had to pick a licence under which they would publish, it would be GPL since this is as close as it gets to the actual terms. And because of this, you are able to type what you just did disrespecting all of them, unaware that if they had not released their work for everybody to see, use and derive, we would not be in the information age now. Please, you can at least show some respect and not generalize like that.
SFGUI # SFNUL # GLS # Wyrm <- Why do I waste my time on such a useless project? Because I am awesome (first meaning).

OniLinkPlus

  • Hero Member
  • *****
  • Posts: 500
    • View Profile
Re: Other people can't run my programs...
« Reply #10 on: August 14, 2013, 08:34:56 am »
...Yeah... I guess Alan Turing... and many many others were all morons... Please, you can at least show some respect and not generalize like that.

Could you please show some respect and not assume to know what Alan Turing would or would not have done? That is INCREDIBLY presumptuous of you. For your information, he died in 1954, DECADES before the GPL even existed.
« Last Edit: August 14, 2013, 08:36:48 am by OniLinkPlus »
I use the latest build of SFML2

eXpl0it3r

  • SFML Team
  • Hero Member
  • *****
  • Posts: 11030
    • View Profile
    • development blog
    • Email
AW: Re: Other people can't run my programs...
« Reply #11 on: August 14, 2013, 08:58:51 am »
I think binary mentioned Alan mainly because of FRex's general statement:
... academics(=morons)...

Might have had to make two separated answers to not mix it with the wohle GPL stuff.

I see the intend of GPL and am glad it brought us that far. Unfortunately as any other coorperations FSF is going for their own goals, which are not based on money, but still introduce similar reatrictiveness than other commercial companies.
Official FAQ: https://www.sfml-dev.org/faq.php
Official Discord Server: https://discord.gg/nr4X7Fh
——————————————————————
Dev Blog: https://duerrenberger.dev/blog/

FRex

  • Hero Member
  • *****
  • Posts: 1848
  • Back to C++ gamedev with SFML in May 2023
    • View Profile
    • Email
Re: Other people can't run my programs...
« Reply #12 on: August 14, 2013, 11:15:20 am »
Quote
No idea what you just said.
You can easily get yourself your own small dll and lib hell when you link few things together and link some things twice to dll and exe or lib and exe or something, I think you had similar problem with glew being statically linked in SFML.
There are apparently few heaps(?) so something like that:
MyObj * obj=newObjInDll();
delete obj;
 
might(?) crash. I'm really not sure, I had static Lua on windows crash when vm was allocated in dll and operated on in exe which both linked in same static lib. I'm fairly sure that was it because it was gone when I started to link dynamic Lua to both. I don't know if it was memory because Lua vms have pointer to memory managing function so it'd use same malloc and free in both but it was for sure a problem with static linking because dll instantly fixed it without changing the offending code in exe and my dll.

Quote
Yeah... I guess Alan Turing, Ken Perlin, Bjarne Stroustrup, Tim Berners Lee, Bob Kahn, Vint Cerf, Linus Torvalds, Edsger Dijkstra, Ron Rivest, Claude Shannon, Jack Bresenham, Edgar Codd and many many others were all morons.
Sorry you misunderstood that. I meant morons as in people who write useless code anyway so they don't care about licensing because it's hacked together for one purpose and is going to get thrown away soon.

Also I know gcc, kernel, big parts of linux distros etc. are GPL*, but I'm not including them in what I program so I don't care, I'm a user of them, it doesn't affect me as programmer because I don't write compilers, frontends or kernel code. And I know dual licensing exists and that is much much better than GPL because it doesn't force GPL on you, a license between GPL and LGPL that'd just require you to release own code under ANY open source osi approved license(zlib, mit, apache, bsd,..., LGPL even) would be ok with me too. I just can't stand that the forced license is GPL, forced literally any other osi would be fine because it'd not lock out everyone who is not willing to go GPL. And I don't want to be forced to GPL ever because I really don't like fsf, gnu and stallman, because stallman is crazy, there is no other word for that, I'd die of starvation and loneliness if I did things the way he does, maybe he doesn't realize that not everyone is president of fsf who can 'live cheaply like a college student' and doesn't care about actual usability of the software. Stallman doesn't care about end user, he is crazy with his philosophy. Linus on the other hand says that free software will win because it's better, not because it's free, which is very good, he also cares about the users.

*They are not actually free: the kernel and any debian or fc based distro and most of the other distros**, because according to stallman allowing binary blob drivers and enabling user to easily install non free software is breaking the freedom, like WTF? He is completely detached from reality, uses open source bios, is happy that his pc can't run windows at all and spends most time in emacs with linux(which he insists on being GNU Operating System) booted in mode without graphics. He places 'freedom' before actual usability and comfort of the end user, I will never ever support something like that unless fsf starts financing me too because stallmans approach is effectively total suicide in programming(which I'd like to do as a job in the future). Stallman and gnu actually encourage and promote locking in users and programmers to certain system and programs suite way more than apple, oracle or microsoft are trying to do it now.

**Distros that use Linus' kernel are automatically non free(you must strip non free binary blobs first to make it truly free), and free distros named similarly to non free ones don't get endorsed because there is chance someone might use non free one accidentally in the confusion. Also free distros are urged to have huge links go gnu.org to encourage freedom.

I'm not speaking out of my ass here, this is all info from GNU and Stallman websites. Like really, anyone who supports the GPL and stallman(and maily stallman, that's the main reason I hate GPL, because his sick mind made it up and he is the fsf president) go read: free distro guidelines, free distro list, list of distros that are not free and the list of reasons they are not considered free, stallmans personal website. If you are not scared then I don't know what to think of you and I don't know how you got onto forum of zlib library that promotes non free software(since it uses GL which uses drivers which are non free). They do have some very very good ideas but they go batshit insane on them and have some really really bad and crazy ones too.
« Last Edit: August 14, 2013, 12:48:47 pm by FRex »
Back to C++ gamedev with SFML in May 2023

binary1248

  • SFML Team
  • Hero Member
  • *****
  • Posts: 1405
  • I am awesome.
    • View Profile
    • The server that really shouldn't be running
Re: Other people can't run my programs...
« Reply #13 on: August 14, 2013, 04:55:56 pm »
You can easily get yourself your own small dll and lib hell when you link few things together and link some things twice to dll and exe or lib and exe or something, I think you had similar problem with glew being statically linked in SFML.
There are apparently few heaps(?) so something like that:
MyObj * obj=newObjInDll();
delete obj;
 
might(?) crash. I'm really not sure, I had static Lua on windows crash when vm was allocated in dll and operated on in exe which both linked in same static lib. I'm fairly sure that was it because it was gone when I started to link dynamic Lua to both. I don't know if it was memory because Lua vms have pointer to memory managing function so it'd use same malloc and free in both but it was for sure a problem with static linking because dll instantly fixed it without changing the offending code in exe and my dll.
The only reason why it is so complicated, is because Laurent chose to make it trivial for beginners to get SFML up and running, at the expense of a more standard linking procedure. If he didn't mess with the visibility options and let the end user link in GLEW by themselves, SFML and SFGUI wouldn't be more complicated to link properly than any other library.

Sorry you misunderstood that. I meant morons as in people who write useless code anyway so they don't care about licensing because it's hacked together for one purpose and is going to get thrown away soon.
From the many papers I have had the pleasure to read, most programming work done at universities consist of demonstrating the concept at hand. In the end, such code is never even released to public and as such does not have to have any open source licence. They don't have any rule that says, if we can't decide what to use we go GPL. They don't distribute.

... rest of wall of text ...
As I've said already, if you want to make money off your code, don't use GPL, that was not its purpose. This does not mean you should antagonize people who do choose to release under GPL because you don't. It was their decision and does not harm you in any way whatsoever. This also does not mean they are all behind Mr. Stallman. Releasing under GPL is one thing, sharing his ideas (which are very radical sometimes) is another. I am a happy user of Windows and Linux, I use proprietary software as well as GPLed and other open source software. I also really don't care if someone goes ahead and runs my GPLed software on Windows. It's the text in the licence that counts for me. It gets what I want done and that is for my code to be used under the terms of the GPL. It saves me the hours of writing my own terms under which I want to release. That's all there is to it. We have the choice, and as long as that is the case, we shouldn't hate or love one choice over another as long as they don't impact us in any negative way.
SFGUI # SFNUL # GLS # Wyrm <- Why do I waste my time on such a useless project? Because I am awesome (first meaning).

FRex

  • Hero Member
  • *****
  • Posts: 1848
  • Back to C++ gamedev with SFML in May 2023
    • View Profile
    • Email
Re: Other people can't run my programs...
« Reply #14 on: August 14, 2013, 05:05:32 pm »
Quote
The only reason why it is so complicated, is because Laurent chose to make it trivial for beginners to get SFML up and running, at the expense of a more standard linking procedure. If he didn't mess with the visibility options and let the end user link in GLEW by themselves, SFML and SFGUI wouldn't be more complicated to link properly than any other library.
So does dynamic linking make sense after all or you mean link everything statically? Or do you mean that everything is made dynamic and if they(SFG,SFML) match they use same one and if not they have they own each? Windows makes this really confusing. On linux everything works out of the box as dynamic and I've yet to have linking problem. Can't the same be done for Windows?(everything dynamic so if few dlls use certain lib they each use same dll instead of each linking in own lib).
There should be a linking tutorial or something, this gets really hellish on windows. What if I have exe and my engine dll or lib which both use SFML, SFG and Lua? Do I link all dynamically or statically to both? Lua when it was linked statically before I moved to Linux to write was causing problems in visual so I guess dynamically?
« Last Edit: August 14, 2013, 05:07:39 pm by FRex »
Back to C++ gamedev with SFML in May 2023