Self built OpenSSL version 3.0.8 names
Moderator: Moderator Team
Self built OpenSSL version 3.0.8 names
Hi,
Do the names for openSSL libraries built by my team need to match those provided by the pre-built openssl on your the OFFS site?
They are:
dcmtkcrypto_d.lib
dcmtkcrypto_o.lib
dcmtkssl_d.lib
dcmtkssl_o.lib
The names of those I built are:
libcrypto-3-x64.dll libcrypto.lib libcrypto_static.lib libssl-3-x64.dll libssl.lib libssl_static.lib
Does DCMTK need the _static_lib versions in the openssl directory that I make available?
Should they be stored in openssl-3.0.8\lib?
And the DLLs in openssl-3.0.8\bin?
Also, where do I get the header files needed for openssl-3.0.8\include?
Thanks
Do the names for openSSL libraries built by my team need to match those provided by the pre-built openssl on your the OFFS site?
They are:
dcmtkcrypto_d.lib
dcmtkcrypto_o.lib
dcmtkssl_d.lib
dcmtkssl_o.lib
The names of those I built are:
libcrypto-3-x64.dll libcrypto.lib libcrypto_static.lib libssl-3-x64.dll libssl.lib libssl_static.lib
Does DCMTK need the _static_lib versions in the openssl directory that I make available?
Should they be stored in openssl-3.0.8\lib?
And the DLLs in openssl-3.0.8\bin?
Also, where do I get the header files needed for openssl-3.0.8\include?
Thanks
-
- DCMTK Developer
- Posts: 2073
- Joined: Fri, 2004-11-05, 13:47
- Location: Oldenburg, Germany
- Contact:
Re: Self built OpenSSL version 3.0.8 names
Just build and install OpenSSL on windows the "default way". You can then tell DCMTK where to look for the OpenSSL library by defining the CMake variable "OPENSSL_ROOT_DIR" and point it to the (main) directory where you installed OpenSSL to. DCMTK will then pickup the right library names automatically.
Re: Self built OpenSSL version 3.0.8 names
By "the default way" do you mean with `nmake install`?
At the moment that isn't working right now for me.
Also, I noticed that there are two versions of the OpenSSL 1.1.1w that the DCMTK team have provided.
https://dicom.offis.de/download/dcmtk/d ... c-17.4.zip
https://dicom.offis.de/download/dcmtk/d ... c-17.4.zip
One with MD option and one with MT option.
Is this something that the "default" build of openSSL creates too?
At the moment that isn't working right now for me.
Also, I noticed that there are two versions of the OpenSSL 1.1.1w that the DCMTK team have provided.
https://dicom.offis.de/download/dcmtk/d ... c-17.4.zip
https://dicom.offis.de/download/dcmtk/d ... c-17.4.zip
One with MD option and one with MT option.
Is this something that the "default" build of openSSL creates too?
Re: Self built OpenSSL version 3.0.8 names
I also asked about the header files. Do those get installed via `nmake install`?
-
- OFFIS DICOM Team
- Posts: 1511
- Joined: Tue, 2004-11-02, 17:22
- Location: Oldenburg, Germany
- Contact:
Re: Self built OpenSSL version 3.0.8 names
I cannot say what "nmake install" will do. We never use that, but manually copy the files needed by DCMTK into the
directory structure that you find in our pre-compiled libraries (actually, nowadays there is a build script for that, but I used to do it manually for years. It's not that difficult).
Depending on whether you want a debug or release build, you may or may not have to build to versions of OpenSSL's libraries.
(dcmtkcrypto_d.lib and dcmtkssl_d.lib are the debug versions, the ones with "_o.lib" are the optimized release builds).
You do not have to build both an /MT and an /MD version, just the one you want to use for your project. If your project
compiles with /MD, then all libraries need to be compiled with /MD. Annoying Visual Studio requirement.
directory structure that you find in our pre-compiled libraries (actually, nowadays there is a build script for that, but I used to do it manually for years. It's not that difficult).
Depending on whether you want a debug or release build, you may or may not have to build to versions of OpenSSL's libraries.
(dcmtkcrypto_d.lib and dcmtkssl_d.lib are the debug versions, the ones with "_o.lib" are the optimized release builds).
You do not have to build both an /MT and an /MD version, just the one you want to use for your project. If your project
compiles with /MD, then all libraries need to be compiled with /MD. Annoying Visual Studio requirement.
-
- OFFIS DICOM Team
- Posts: 1511
- Joined: Tue, 2004-11-02, 17:22
- Location: Oldenburg, Germany
- Contact:
Re: Self built OpenSSL version 3.0.8 names
When building the OpenSSL library, the library files will be named "libcrypto" and "libssl". We rename these in
our support library build to avoid the situation where a different application installs these DLLs in an
incompatible version and our binaries then load the wrong DLL.
our support library build to avoid the situation where a different application installs these DLLs in an
incompatible version and our binaries then load the wrong DLL.
Re: Self built OpenSSL version 3.0.8 names
One last point. Since I'm using the libraries I built, I'd expect to see them referenced in the CMakeCache.txt file. However, I see the names for the DCMTK built OpenSSL libraries.
I would have expected to see libcrypto.lib and libssl.lib. They aren't referenced.
Why aren't they referenced?
Code: Select all
DCMTK_LIBRARY_DEPENDENCIES:INTERNAL=config;iphlpapi;ws2_32;netapi32;wsock32;iphlpapi;ws2_32;netapi32;wsock32;crypt32;debug;C:/repos/mmi-director-dcmtk-3.6.8/openssl-3.0.8/lib/dcmtkssl_d.lib;optimized;C:/repos/mmi-director-dcmtk-3.6.8/openssl-3.0.8/lib/dcmtkssl_o.lib;debug;C:/repos/mmi-director-dcmtk-3.6.8/openssl-3.0.8/lib/dcmtkcrypto_d.lib;optimized;C:/repos/mmi-director-dcmtk-3.6.8/openssl-3.0.8/lib/dcmtkcrypto_o.lib;crypt32;debug;C:/repos/mmi-director-dcmtk-3.6.8/openssl-3.0.8/lib/dcmtkssl_d.lib;optimized;C:/repos/mmi-director-dcmtk-3.6.8/openssl-3.0.8/lib/dcmtkssl_o.lib;debug;C:/repos/mmi-director-dcmtk-3.6.8/openssl-3.0.8/lib/dcmtkcrypto_d.lib;optimized;C:/repos/mmi-director-dcmtk-3.6.8/openssl-3.0.8/lib/dcmtkcrypto_o.lib
Why aren't they referenced?
-
- DCMTK Developer
- Posts: 2073
- Joined: Fri, 2004-11-05, 13:47
- Location: Oldenburg, Germany
- Contact:
Re: Self built OpenSSL version 3.0.8 names
Then it still uses the DCMTK-build versions of those libraries.
Re: Self built OpenSSL version 3.0.8 names
The directory that the OpenSSL libraries does not contain the DCMTK-build versions of those libraries. That's why I'm asking about this issue.
I don't see how they can be selecting the DCMTK-build library names when it is selecting the directory for the libraries I built.
There seems to be an issue with the CMake config/generate when using the OpenSSL 3.0.8 libraries and include files.
I know the INSTALL file says that version is supported. However, I am seeing behavior that suggests something isn't right.
Thanks.
I don't see how they can be selecting the DCMTK-build library names when it is selecting the directory for the libraries I built.
There seems to be an issue with the CMake config/generate when using the OpenSSL 3.0.8 libraries and include files.
I know the INSTALL file says that version is supported. However, I am seeing behavior that suggests something isn't right.
Thanks.
Re: Self built OpenSSL version 3.0.8 names
This is what I see in the CMakeCache.txt file when using OpenSSL 3.0.8 I built.
There are no files with those names in the C:/repos/mmi-director-dcmtk-3.6.8/openssl-3.0.8/lib directory.
The path to the directory is correct, but the library names aren't. Why would the Cmake configuration/generate use the wrong library names with the right directory?DCMTK_LIBRARY_DEPENDENCIES:INTERNAL=config;iphlpapi;ws2_32;netapi32;wsock32;iphlpapi;ws2_32;netapi32;wsock32;crypt32;debug;C:/repos/mmi-director-dcmtk-3.6.8/openssl-3.0.8/lib/dcmtkssl_d.lib;optimized;C:/repos/mmi-director-dcmtk-3.6.8/openssl-3.0.8/lib/dcmtkssl_o.lib;debug;C:/repos/mmi-director-dcmtk-3.6.8/openssl-3.0.8/lib/dcmtkcrypto_d.lib;optimized;C:/repos/mmi-director-dcmtk-3.6.8/openssl-3.0.8/lib/dcmtkcrypto_o.lib;crypt32;debug;C:/repos/mmi-director-dcmtk-3.6.8/openssl-3.0.8/lib/dcmtkssl_d.lib;optimized;C:/repos/mmi-director-dcmtk-3.6.8/openssl-3.0.8/lib/dcmtkssl_o.lib;debug;C:/repos/mmi-director-dcmtk-3.6.8/openssl-3.0.8/lib/dcmtkcrypto_d.lib;optimized;C:/repos/mmi-director-dcmtk-3.6.8/openssl-3.0.8/lib/dcmtkcrypto_o.lib
There are no files with those names in the C:/repos/mmi-director-dcmtk-3.6.8/openssl-3.0.8/lib directory.
Re: Self built OpenSSL version 3.0.8 names
Also, the INSTALL file suggests that the libraries have to be named as specified in the CMakeCache.txt file.
(Please note also that the library files of all external libraries are always
expected in directory named "lib" below the directory which is specified in
"WITH_LIBXMLINC", "WITH_LIBPNGINC", "WITH_LIBTIFFINC", "WITH_OPENSSLINC",
"WITH_ZLIBINC" or "WITH_LIBICONV". Moreover, note that the following
filenames must be used for the corresponding lib files:
openssl:
"dcmtkcrypto_d.lib" - debug version
"dcmtkcrypto_o.lib" - release version (optimized)
"dcmtkssl_d.lib" - debug version
"dcmtkssl_o.lib" - release version (optimized)
-
- DCMTK Developer
- Posts: 2073
- Joined: Fri, 2004-11-05, 13:47
- Location: Oldenburg, Germany
- Contact:
Re: Self built OpenSSL version 3.0.8 names
Maybe you should just build and check which library files are actually linked to your binaries when the linker is invoked. Or you can start "storescu --version" after the build and it should display the openssl version being used.
Re: Self built OpenSSL version 3.0.8 names
FYI: I'm on Windows with Visual Studio build system.
I'm not building the tools.
The INSTALL file suggests I need to have the right library names so I will change them to match the INSTALL file list.
I still have a question about the DLLs generated by the build of OpenSSL.
They are: libcrypto-3-x64.dll, libssl-3-x64.dll.
Should they be renamed to:
dcmtkcrypto-3-x64.dll, dcmtkssl-3-x64.dll
That seems odd since they weren't built by the DCMTK team.
Neither for the *.lib files.
I don't see the DLLs referenced in any Visual Studio project files. I do see the openssl header directory and files being used.
I'm not building the tools.
The INSTALL file suggests I need to have the right library names so I will change them to match the INSTALL file list.
I still have a question about the DLLs generated by the build of OpenSSL.
They are: libcrypto-3-x64.dll, libssl-3-x64.dll.
Should they be renamed to:
dcmtkcrypto-3-x64.dll, dcmtkssl-3-x64.dll
That seems odd since they weren't built by the DCMTK team.
Neither for the *.lib files.
I don't see the DLLs referenced in any Visual Studio project files. I do see the openssl header directory and files being used.
Re: Self built OpenSSL version 3.0.8 names
Also, I can't build DCMTK because of build issues.
See: https://forum.dcmtk.org/viewtopic.php?t=5396
See: https://forum.dcmtk.org/viewtopic.php?t=5396
Who is online
Users browsing this forum: Google [Bot] and 1 guest