public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
From: "Michael Grønager" <gronager@ceptacle.com>
To: "Luke-Jr" <luke@dashjr.org>
Cc: bitcoin-development@lists.sourceforge.net
Subject: Re: [Bitcoin-development] libcoin (HEAD) now supports boost < 1.47 - please test
Date: Thu, 2 Feb 2012 23:43:07 +0100	[thread overview]
Message-ID: <50342F76-062C-4A88-A5DA-A77C799AEC80@ceptacle.com> (raw)
In-Reply-To: <201202021130.12213.luke@dashjr.org>

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@ceptacle.com
Web: http://www.ceptacle.com/




  reply	other threads:[~2012-02-02 22:43 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-02 13:46 [Bitcoin-development] libcoin (HEAD) now supports boost < 1.47 - please test Michael Grønager
2012-02-02 16:30 ` Luke-Jr
2012-02-02 22:43   ` Michael Grønager [this message]
2012-02-02 23:27     ` Luke-Jr

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=50342F76-062C-4A88-A5DA-A77C799AEC80@ceptacle.com \
    --to=gronager@ceptacle.com \
    --cc=bitcoin-development@lists.sourceforge.net \
    --cc=luke@dashjr.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox