What is Nostr?
Michael Grønager [ARCHIVE] /
npub15fm…lq6h
2023-06-07 03:05:15

Michael Grønager [ARCHIVE] on Nostr: 📅 Original date posted:2012-02-02 📝 Original message:Thanks for the patch and ...

đź“… Original date posted:2012-02-02
đź“ť Original message:Thanks for the patch and the detective work!

Enabling dynamic libs was on my TODO, but on the Redmond_OS_not_to_be_mentioned you need to :
* prepend class definitions with __declspec(dllexport) when you compile the dll
* prepend class definitions with __declspec(dllimport) when you use the dll
I just love the way they spoil their developers...

I have the framework to automate this with CMake from a former project, but I havn't tested it for libcoin yet, hence the static build. And well, iOS also has this fetich for static libs.

I also recall another issue with dll's: If you define a global variable it is shared between all executables using this dll. I have still a handful of globals to clean out, namely those related to logging - I will do so, but it has not yet been a top priority.

So, feel free to use dynamic libs on unix'es, but on windows it is .libs for a little while longer.

Will fix the Qt stuff in CMake - thanks!

Cheers,

Michael


On 02/02/2012, at 17:30, Luke-Jr wrote:

> On Thursday, February 02, 2012 8:46:05 AM Michael Grønager wrote:
>> Please test and feed back.
>
> I found the problem: you are trying to use static libraries. Best practices
> are to use shared libraries (except for specific scenarios like universal
> "Linux" binaries) and most distros do not have static libraries installed by
> default.
>
> The coinQt stuff was also creating a problem.
>
> I am able to build with this patch:
> diff --git a/CMakeLists.txt b/CMakeLists.txt
> index dea37c4..b876881 100644
> --- a/CMakeLists.txt
> +++ b/CMakeLists.txt
> @@ -352,7 +352,7 @@ ENDIF(BDB_FOUND)
> #Note: We need as a minimum Boost 1.47 to support the signal_set used in
> Server. A backup signal_set has been created, though.
> SET(Boost_NO_BOOST_CMAKE ON)
> SET(Boost_ADDITIONAL_VERSIONS "1.47" "1.47.0" "1.48" "1.48.0")
> -SET(Boost_USE_STATIC_LIBS ON)
> +#SET(Boost_USE_STATIC_LIBS ON)
> SET(Boost_USE_MULTITHREADED ON)
> SET(Boost_USE_STATIC_RUNTIME OFF)
>
> @@ -804,9 +804,9 @@ SET(PKGCONFIG_FILES
> # libcoin-coinMine
> )
>
> -IF(QT4_FOUND)
> - SET(PKGCONFIG_FILES ${PKGCONFIG_FILES} libcoin-coinQt)
> -ENDIF(QT4_FOUND)
> +#IF(QT4_FOUND)
> +# SET(PKGCONFIG_FILES ${PKGCONFIG_FILES} libcoin-coinQt)
> +#ENDIF(QT4_FOUND)
>
> FOREACH(PKGCONFIG_FILE ${PKGCONFIG_FILES})
> CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/packaging/pkgconfig/${PKGCONFIG_FILE}.pc.in
> diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
> index 0011392..67044d1 100644
> --- a/src/CMakeLists.txt
> +++ b/src/CMakeLists.txt
> @@ -19,9 +19,9 @@ FOREACH( mylibfolder
>
> ENDFOREACH()
>
> -IF (QT4_FOUND AND NOT ANDROID)
> - ADD_SUBDIRECTORY(coinQt)
> -ENDIF()
> +#IF (QT4_FOUND AND NOT ANDROID)
> +# ADD_SUBDIRECTORY(coinQt)
> +#ENDIF()
>
> IF(ANDROID)
> configure_file("${LIBCOIN_ANDROID_TEMPLATES}/Android.mk.src.in"
> "${CMAKE_CURRENT_BINARY_DIR}/Android.mk")

Michael Gronager, PhD
Director, Ceptacle
Jens Juels Gade 33
2100 Copenhagen E
Mobile: +45 31 45 14 01
E-mail: gronager at ceptacle.com
Web: http://www.ceptacle.com/
Author Public Key
npub15fmnxm546tg2sv0l7elusrvqsgezdzdg3m0flpml5fr2qf3f5slskxlq6h