1
General / Question about SFML_USE_STATIC_STD_LIBS
« on: October 21, 2013, 04:02:11 am »
Hey everyone,
I was originally going to post a question about why my configuration wasn't building the appropriate static libraries, but apparently now it is magically working. I think CMake screwed something up, but anyways... it's working now.
I'm just a little confused, conceptually, about static libraries in general. I have googled around quite a bit.
I used to use sfml in a "static" configuration, so I didn't have to distribute any dll's with the executable. But that was with the BUILD_SHARED_LIBS option, which created what I thought were static libraries. Now, I'm using USE_STATIC_STD_LIBS... Both of these are static libraries, right? I guess I'm not *too* familiar with how the linker works, but are the differences between the two just that the former does not statically link the C runtime?
The entire reason I moved to static_std_libs is because CryptoPP recommends using their library in a static configuration, which I believe means everything must be static.
I guess I'm not even sure what my question is! Is the first static version of SFML statically linked to my application and dynamically linked to the C Runtime, and the second is statically linked to both? I need the second configuration if another library (cryptoPP) is statically linking to the C Runtime, right? I imagine that's the case, unless I somehow am running two separate heaps at the same time for each runtime, which seems to make no sense.
Any clarification would be appreciated. I tried to do as much research as I could before posting!
I was originally going to post a question about why my configuration wasn't building the appropriate static libraries, but apparently now it is magically working. I think CMake screwed something up, but anyways... it's working now.
I'm just a little confused, conceptually, about static libraries in general. I have googled around quite a bit.
I used to use sfml in a "static" configuration, so I didn't have to distribute any dll's with the executable. But that was with the BUILD_SHARED_LIBS option, which created what I thought were static libraries. Now, I'm using USE_STATIC_STD_LIBS... Both of these are static libraries, right? I guess I'm not *too* familiar with how the linker works, but are the differences between the two just that the former does not statically link the C runtime?
The entire reason I moved to static_std_libs is because CryptoPP recommends using their library in a static configuration, which I believe means everything must be static.
I guess I'm not even sure what my question is! Is the first static version of SFML statically linked to my application and dynamically linked to the C Runtime, and the second is statically linked to both? I need the second configuration if another library (cryptoPP) is statically linking to the C Runtime, right? I imagine that's the case, unless I somehow am running two separate heaps at the same time for each runtime, which seems to make no sense.
Any clarification would be appreciated. I tried to do as much research as I could before posting!