How to Build the Apache APR-Util v1.6.0 Library - visual-studio-2017

I am really struggling with this one. I have downloaded the latest version of each of the following Apache APR products for Windows:
APR v1.6.2
APR-util v1.6.0
APR-iconv v1.2.1
I have extracted the zip files and renamed the directories according to the APR Windows build instructions. Then I opened the apr-util/apr-util.dsw solution within Visual Studio 2017 and performed the required upgrade. When I build, I'm getting a bunch of errors from the apr-util/xml/xml.vcxproj project about missing source files. I have verified that none of the files referenced by the xml project actually exist on disk (or within the zip archive). Those files also don't exist within the Linux source download. Further, all of those files exist in APR-util v1.5.4. In my mind, this leaves only three possibilities:
The version I downloaded is corrupted
Apache released a version that is missing files required to build
There are additional build steps required for this version that are missing from the build instructions
I have verified my download of apr-util against the expected MD5 hash, and even tried downloading from other mirrors to eliminate #1 as a possibility.
This version of apr-util was released 2.5 months ago, so if #2 were the case I expect it would have been fixed by now. Has anyone else successfully built this version of Apache APR?

Based on issue #61379 opened August 3, it appears Apache removed Expat source code from apr-util. There is now an undocumented, additional step to copy the Source/lib directory from the Expat installation to apr-util/xml/expat/lib prior to building.

Related

VisualStudio: remote lib headers are not downloaded when working with Suse Enterprise Server 12 SP5

Problem
I've got an issue when developing c++ application in Visual Studio using Suse Enterprise Server 12 SP5 distribution as remote build machine. The main problem is caused by libxml2.
Error logs: Errors.img
In the beginning, Visual Studio notified me that it cannot find libxml. I checked directory containing those headers and found out that libxml wasn't downloaded when I tried to load remote headers.
Research
Before SLES, I was working with CentOS without problems. As I understand, Visual Studio loads headers from /usr/lib/, so I compared how those distributions store installed libs. I found out that in CentOS lib files are stored in "/usr/lib" directory, but SLES keep them mostly stored in "/lib or /lib64" directories. So, I downloaded libxml sources from https://gitlab.gnome.org/GNOME/libxml2/ .
NOTE: VS failed when tried to execute "make" command, so I tried just coping “include/libxml” folder from sources to “/usr/lib/ directory”.
After it, Visual Studio downloaded that lib and intellisence has stopped showing error: "Cannot find libxml". But I still get errors of libxml absence: Other errors.img
My question is what are ways to solve this problem? Maybe there exists any way to download /lib/ directory, or install this libxml to /usr/lib at start? Do libxml from CentOS will correctly work in SLES?
Thank you in advance!
After some tries, solution founded.
I installed openSuse instead of SLES, download all necessary libs and successfully get headers. By the way, c++ application which built on openSuse, could launch on SLES without any problem.

Oracle instant client header files are missed

I'm using RedHat OS to build a C++ program that is using OCCI to connect with an Oracle DB.
I had to reinstall everything and I found that my make file is adding the header files from the following path
/usr/include/oracle/18.3/client64
Which isn't available anymore
The only installation I remember I need is installing oracle-instantclient-basic
I've downloaded the rpm and installed using the command rpm -i ***.rpm
But the folder /usr/include/oracle isn't there
Note: The path /usr/lib/oracle/18.3/client/lib is found and all libraries I use for linking are there (only header files are missed).
This is my installation file
I could investigate and find the solution
The header files are not created by installing oracle-instantclient-basic but you should install oracle-instantclient-devel
/usr/include/oracle/18.3/client64 is the path for 64bit version and the path is /usr/include/oracle/18.3/client for 32bit versions.
All the tools can be downloaded from oracle website

How to build SRP for Win32 with Visual Studio 2017?

I need to build Secure Remote Password protocol library (SRP/libsrp) for old project from 2010. I can't figure out how to build it for Win32.
I found this link with latest source code:
http://srp.stanford.edu/download.html
Version 2.1.2 was used in project. There is link for Win32-binaries, but it's dead.
So the only way to get binaries is to compile the source code.
In Win32\README was said to put OpenSSL includes and compiled libs in related folder (include, lib, etc.).
I can't figure out what version of OpenSSL should be used. On the web page was said something about patching version 1.0.0.0, but I used the latest version of OpenSSL.
Then it was said to open "srp_openssl.dsw" file (which is VC++ 6 Workspace) and rebuild everything to get binaries.
The result is hundreds of errors related to the obsolete language and related to the OpenSSL. Also need to take into account that OpenSSL changed library names.
So, is the only way - to use OpenSSL 1.0.0.0 and VC++ 6 to build SRP? Also, are there any binaries in the internet?

Adding binaries to other peoples conan recipes

I'm using given conan packages
gtest/1.8.0#bincrafters/stable
boost/1.66.0#conan/stable
log4cplus/2.0.2#bincrafters/stable`
and clang (version at least 6.0).
While first two packages has binaries for clang 6.0, log4cplus doesn't (last is clang 3.9). I don't like the idea that on each workstation I would need to build this package by hand.
How can I upload localy build binary with clang 6.0?
conan upload looks promising, however it suggest that it will be NEW package. Second question - wouldn't I interfere with package author in any way?
I do recommend open an issue for Bincrafters, requesting clang 3.9 support: https://github.com/bincrafters/community/issues/
Include a new package configuration is just one line in the Travis recipe.
How can I upload localy build binary with clang 6.0?
You could use JFrog Artifactory, there is a Community Edition with Conan support. Also, you could create a "mirror" for your packages locally with Artifactory, instead to download from Bintray:
https://docs.conan.io/en/latest/uploading_packages/artifactory_ce.html
However, Conan respects your remote list by it order, if your Conan client finds log4cplus first in Bincrafters' remote but the correct binary is only available in your local repository, Conan will ignore your local remote and will show a message error about missed binary package for log4cplus. Thus, in your case, you will need to copy ALL binaries to your local repository.
Regards!
You will find the conan packages installed on your Linux system at .conan/data/package_name/version/repo_name/tag. There will be a package folder inside it. If you want to manually add binaries to existing packages then you can add the binary in /bin folder in packages.
Or else you can look into the conan recipe in exports folder and look for the package, that from where it is getting its binaries from and add that binary in that path.

HDF5 Library error

I am using the follows
1) VS 2010 C++
2) Debug Win 32
3) The library from here
http://www.hdfgroup.org/HDF5/release/obtain5.html
Basically I downloaded Windows (32-bit) Compilers: CMake VS 2010 C, C++, IVF 12, RWDI and installed it. I tried to include a sample code in my C++ application and ran into the following
***HDF5 library version mismatched error***
The HDF5 header files used to compile this application do not match
the version used by the HDF5 library to which this application is linked.
Data corruption or segmentation faults may occur if the application continues.
This can happen when an application was compiled by one version of HDF5 but
linked with a different version of static or shared HDF5 library.
You should recompile the application or check your shared library related
settings such as 'LD_LIBRARY_PATH'.
You can, at your own risk, disable this warning by setting the environment
variable 'HDF5_DISABLE_VERSION_CHECK' to a value of '1'.
Setting it to 2 or higher will suppress the warning messages totally.
Headers are 1.8.12, library is 1.8.11
SUMMARY OF THE HDF5 CONFIGURATION
=================================
General Information:
-------------------
HDF5 Version: 1.8.11
Configured on:
Configured by: Visual Studio 9 2008
Configure mode: CMAKE 2.8.11.2
Host system: Windows-6.1
Uname information: Windows
Byte sex: little-endian
Libraries:
Installation point: J:/dev/opt/hdf5-1.8.11
You either have two versions of HDF5 installed and you are compiling with one (1.8.12) but linking with the other (1.8.11 in J:/dev/opt/hdf5-1.8.11), or more likely you installed HDF5, compiled your program, then updated HDF5 later on and didn't clean some object files in your project…
First try to Clean All and Build your program again, it might be enough.
If this doesn't work, find out if you have two versions installed at the same time and remove one of them if this is the case, Clean All and Build your program.
If this doesn't work, remove all HDF5 stuff on your system and reinstall the HDF5 library, Clean All and Build your program.
I have the same problem and I solved the issue by using
conda install -c anaconda hdf5=1.8.12
I hope this will work with you too
This seems to show up for only when the application(using Theano+Keras+Anaconda) is run using PyCharm in Windows machine.
You can, at your own risk, disable this warning by setting the environment
variable 'HDF5_DISABLE_VERSION_CHECK' to a value of '1'.
Setting the HDF5_DISABLE_VERSION_CHECK=1 suppresses it.