Linking with libcurl library on xcode with latest and greatest openssl dependency - c++

We have a C++ project that compiles on MAC (OSX 10.9) and we need to make it FIPS compliant. This means that the process should call the function fips_mode_set in the beginning of the run and use a new FIPS compliant openssl library (we use version 1.0.2k). Our project uses the openssl library and the libcurl library (which depends on the openssl library itself) and compiles with xcode (6.2).
The problem is that xcode links to a libcurl version that depends on an old version of openssl library (0.9.8). How Do I compile a version that uses libcurl library on one hand, but depends on a newer version of openssl library on the other hand?

Related

two static libraries that use different libstdc++ versions

I am working on a project where we use an old version of libstdc++. I have just introduced a new library statically linked, that requires a newer version of the libstdc++. I have installed both versions of libstdc++ installed. Is there a way to compile my program with gcc and the new library?
Compile with the newer version of libstdc++ as this library is forward compatible.

How to know which version of openssl boost ssl is using

I have some questions about boost openssl updation
How can I find out which version of openssl boost ssl is using?
Do we need to recompile the C++ boost application after updating openssl or will updating openssl suffice?
Boost will use the openssl version provided by your system (or explicitly specified during compilation/linkage, check your build script)
It depends on your linkage type, if you link statically against OpenSSL, you will need to recompile. If you are linking dynamically, then updating the DLL/shared object will be enough (unless you linked against a specific version)

Build boost with zlib support linked dynamically

I have troubles with building boost libraries.
I am using version 1.55 on OS Win7.
According to documentation and another thread I found switches that work to build boost with zlib support.
I haven't found a way, how to build boost (static or dynamic) libraries with zlib being external dependency, and will be shipped with my application. In that way, any user can build/change his own zlib, as long as the interface is unchanged.
I such thing possible? Does boost support dynamic zlib linkage?
Finally, I was able to solve the problem with the following.
There is a bug in versions 1.55 and above. Building static libraries can be done using older jamfile (1.53).
For the dynamic library, you need to add zlib.cpp to your project and compile.
With dynamic, meaning there is only zlib.dll linked directly to your project.

Compile with boost to use whatever boost version is available?

I've compiled a Linux package on ubuntu 12.04 which uses boost and on this system i have boost 1.46. I tried to run the compiled release on another system and it complains that it can't find libboost_system.so.1.46.1. That system has boost 1.49 installed. How do I compile so that the program uses whatever version of boot exists instead of the specific version on the development machine.
You cannot expect your program to work with a different version of the library.
The fact that there are /different/ versions implies that they're /not the same/.
As mentioned, either
statically link to your specific version, or
you can ship the shared libraries (as long as you put them in a app-specific location and make sure you find them at runtime). Incidentally, see the second example here: How to compile boost async_client.cpp for the relevant linker options to use a custom library (it assumes the same location is to be used at runtime (rpath)

Binaries for cpp-netlib

I would like to know if it is possible to get the binaries for the static library for windows (x86 and x64) now present in cpp-netlib for the version 0.9.1?
Frankly it is a pain to compile this on windows for me.
Thanks
New version's of cpp-netlib now do require building. I have answered how to build it on here
It seems that cpp-netlib is a header-only library, although it relies on some boost compiled libraries, such as Boost.System, Boost.Date_time, and Boost.Regex. You can easily find boost pre-compiled libraries all over the Internet. You will also need the boost headers to be in your build path as well. Even though cpp-netlib says that Boost 1.41.0 will do, in actuality, version 0.9.1 requires Boost version 1.46.0 or later (just grab the latest which is 1.47.0).
You could also try defining BOOST_NETWORK_NO_LIB which should help out.