[sword-devel] Building libsword on windows

Jon Behrens biz at crimsonthread.com
Wed Dec 31 17:45:35 MST 2014


Hi Daniel
Since your problem is in the flatapi, continue in the instructions for 
the c# bindings.
There are some changes that need to be made in the dll export 
declaration to get
it to work with Windows. Those are steps 5 and 6 of the tutorial. Also, 
in step 9, you
need to make sure that the dlls listed are in the same directory as your 
project output
(or in a lib path)
Jon
On 12/31/2014 4:04 PM, Daniel Sheffield wrote:
> Hi Jon,
>
> Thanks for that help, I changed icu-sword dir back to icu (it really 
> is the latest icu - not icu-sword!), and rebuilt the dll.
> Still can't link to it: -lsword -licuuc54 -licuin54 -licudt54
> Linker doesn't complain can't find lib or anything, but still outputs 
> the errors in my prior message.
> undefined reference to 
> 'sword:SWModule\SWMgr\SWkey\SWBuf\MarkupFilterMgr' - which appear to 
> all be in flatapi.h so I really don't know why they aren't their after 
> following the directions here: 
> http://www.crosswire.org/wiki/CSharp_Bindings_on_Windows
>
> Cheers for your help,
> Daniel
>
> --
> In the beginning Kibo created the Internet. Now the Internet was 
> formless, and empty. Randomness was upon the face of computing, and 
> the Spirit of ARPA moved upon the face of the computers. Then Kibo 
> said, "Let there be data": and there was data. Kibo saw the data, and 
> it was good, so Kibo divided the data from the randomness, and Kibo 
> named the data Information, and the randomness Clueless. And the 
> Information and the Clueless were the first Network.
>
> On Thu, Jan 1, 2015 at 8:03 AM, Jon Behrens <jbb at crimsonthread.com 
> <mailto:jbb at crimsonthread.com>> wrote:
>
>     Hello Daniel
>     Look here http://www.crosswire.org/wiki/CSharp_Bindings_on_Windows
>     The first section of this tutorial deals with changes needed to
>     get Sword 1.7.3 to build
>     with VS2013. You can ignore the remainder.
>     Be blessed,
>     Jon
>
>     On 12/30/2014 8:29 PM, Daniel Sheffield wrote:
>
>         Hi all,
>
>         I've been having trouble building libsword.dll for windows.
>         I've followed the information here:
>         http://www.crosswire.org/wiki/Tutorial:Compiling_%26_Installing_SWORD_on_Windows
>
>         Finally figured out (searching the sword-devel archives) that
>         all I needed to do was rename icu to icu-sword and similarly
>         rename the curl output dir to what MSVS was expecting and I
>         was able to build the solution.
>
>         However: I can't seem to link against the
>         libsword.dll/libsword.lib.
>         The only way I have been able to successfully build my project
>         with libsword is by adding objects.a (generated by
>         cross-compiling libsword on linux using mxe) to the list of
>         sources which effectively copies all the objects in.
>
>         This is what I get at compile time when I link against
>         libsword.dll
>         agents\sword\sword.o:sword.cpp:(.text+0x41): undefined
>         reference to `sword::MarkupFilterMgr::MarkupFilterMgr(char, char)'
>         agents\sword\sword.o:sword.cpp:(.text+0x5c): undefined
>         reference to `sword::SWMgr::SWMgr(sword::SWFilterMgr*, bool)'
>         agents\sword\sword.o:sword.cpp:(.text+0x95): undefined
>         reference to `sword::SWKey::SWKey(char const*)'
>         agents\sword\sword.o:sword.cpp:(.text+0xb5): undefined
>         reference to `sword::SWKey::~SWKey()'
>         agents\sword\sword.o:sword.cpp:(.text+0xdd): undefined
>         reference to `sword::SWModule::renderText(char const*, int, bool)'
>         agents\sword\sword.o:sword.cpp:(.text+0x10b): undefined
>         reference to `sword::SWMgr::~SWMgr()'
>         agents\sword\sword.o:sword.cpp:(.text+0x129): undefined
>         reference to `sword::SWKey::~SWKey()'
>         agents\sword\sword.o:sword.cpp:(.text+0x13a): undefined
>         reference to `sword::SWMgr::~SWMgr()'
>         agents\sword\sword.o:sword.cpp:(.text$_ZN5sword5SWBufD1Ev[__ZN5sword5SWBufD1Ev]+0xfffffe6c):
>         undefined reference to `sword::SWBuf::nullStr'
>
>         These compile time errors disappear when I add objects.a to
>         the list of sources AND there are no run-time errors either
>         (despite neither linking against icu).
>
>         I have no idea whats going on. Perhaps it's because I build
>         libsword.dll with MS Visual Studio and am trying to link it
>         with MinGW's g++...
>
>         If anyone can help I'd appreciate it!
>
>         Daniel Sheffield
>
>         Associate Engineer - Software
>         Level 2, Building A, The Millennium Building Phase 2, 600
>         Great South Road
>         Ellerslie,
>         Auckland,
>         1051
>
>         +64 9 926 2895 <tel:%2B64%209%20926%202895> Office
>         +64 21 1408 708 <tel:%2B64%2021%201408%20708> Mobile
>         http://www.emulex.com
>
>         On Tue, 30 Dec 2014, Troy A. Griffitts wrote:
>
>             Done.  Thanks for subscribing!
>
>
>             On 12/30/2014 03:21 PM, Daniel Sheffield wrote:
>
>                 Sorry to bother you yet again...
>                 I filled out some form
>                 http://www.crosswire.org/mailman/listinfo/sword-devel
>                 and was directed to send an e-mail to sword-support to
>                 verify I am not a robot.
>                 My question is when my e-mail and password will be
>                 active on sword-devel. I just tried it now and was
>                 rejected.
>
>                 I'm aware this all takes time - I'm not in a rush -
>                 just checking that I've actually completed all the
>                 steps to subscribe.
>
>                 Cheers,
>
>                 Daniel Sheffield
>
>                 Associate Engineer - Software
>                 Level 2, Building A, The Millennium Building Phase 2,
>                 600 Great South Road
>                 Ellerslie,
>                 Auckland,
>                 1051
>
>                 +64 9 926 2895 <tel:%2B64%209%20926%202895> Office
>                 +64 21 1408 708 <tel:%2B64%2021%201408%20708> Mobile
>                 http://www.emulex.com
>
>                 On Tue, 30 Dec 2014, Peter von Kaehne wrote:
>
>
>                     Daniel, i think you should subscribe to
>                     sword-devel. Sword support is more about people
>                     not being
>                     able to understand the programms they downloaded
>                     etc. I am sure your problem has been discussed
>                     several times on that list.
>
>                     Biblecs might be a VS programme, but most others
>                     use msys which is a pared down unixy
>                     buildenvironment
>
>                     On 30 Dec 2014 20:49, Daniel Sheffield
>                     <d.j.yotta at gmail.com <mailto:d.j.yotta at gmail.com>>
>                     wrote:
>                           Yeah, I've stumbled accross MSYS which
>                     appears to a particular build environment on
>                           windows?
>
>                     In regards to my linking issuse, the latest news
>                     is that I have managed to link against the
>                     libsword.dll.a and, because of the run time
>                     errors, tracked the undefined references down to
>                     the icu*54.dlls. I'll try recompiling them (I also
>                     downloaded pre-compiled ones for icu too -
>                     dunno if I've tried those).
>
>                     I don't know why, but when I use libsword.a
>                     instead of libsword.dll.a, I get neither compile
>                     time nor run time errors. Then again, I haven't
>                     tried actually calling the sword functions yet
>                     in my windows port - just wanted it to compile first!
>
>                     Atm, I'm reading up about all these forms of
>                     library files. I think that will help me figure
>                     out what is going on.
>
>                     Cheers,
>                     Daniel
>
>                     -- 
>                     In the beginning Kibo created the Internet. Now
>                     the Internet was formless, and empty.
>                     Randomness was upon the face of computing, and the
>                     Spirit of ARPA moved upon the face of the
>                     computers. Then Kibo said, "Let there be data":
>                     and there was data. Kibo saw the data, and it
>                     was good, so Kibo divided the data from the
>                     randomness, and Kibo named the data Information,
>                     and the randomness Clueless. And the Information
>                     and the Clueless were the first Network.
>
>                     On Wed, Dec 31, 2014 at 12:37 AM, Peter von Kaehne
>                     <refdoc at crosswire.org
>                     <mailto:refdoc at crosswire.org>> wrote:
>                           Not a programmer, but i am thinking , most
>                     things are done successfully via msys
>                           rather than via MS stuff.
>
>                           On 30 Dec 2014 05:34, Daniel Sheffield
>                     <d.j.yotta at gmail.com <mailto:d.j.yotta at gmail.com>>
>                     wrote:
>                           >
>                           > Hi,
>                           >
>                           > I develop mainly on linux and have been
>                     linking to the sword library for a
>                           project I'm working on (bibq hosted on
>                     sourceforge).
>                           >
>                           > I have ported my project also to windows,
>                     but have been having difficulty
>                           compiling libsword.dll.
>                           > Xiphos was the only package I could find
>                     that had this dill precompiled and I
>                           tried using that.
>                           > After suffering dll hell, I finally
>                     managed to find all the dlls the xiphos
>                           libsword.dll depended on only to have
>                     missing functions at runtime.
>                           >
>                           > Idealy, I want to compile libsword.dll
>                     from scratch but I have tried every which
>                           way to do this.
>                           >
>                           > . I followed the instructions here:
>                     http://crosswire.org/wiki/Tutorial:Compiling_%26_Installing_SWORD_on_Windows
>
>                           eventually building all the dependancies
>                     except clucene which eludes all attempts
>                           at building on windows. I attempted
>                     compiling without clucene and appeared to get
>                           errors that didn't relate to clucene anyhow
>                     and couldn't progress any further.
>                           > . I then tried cross-compiling on linux
>                     targeted at windows. I used mxe and
>                           things went pretty smoothly but I get link
>                     errors at the final step of linking
>                           libsword.dll (to do with icu).
>                           >
>                           > I'm about ready to give up and use jsword
>                     - but that feels so wrong!
>                           >
>                           > I guess I'm not really expecting to be
>                     hand-held through the build process, but
>                           my main question is why I can't simply build
>                     using MS Visual Studio? There seems
>                           to be a problem with MS Visual Studio 2013
>                     as I've encountered even errors such as
>                           "can not find stdio.h/stdlib.h" when
>                     generating the clucene solution with cmake.
>                           The solution file for SWORD also doesn't
>                     build. I'm most likely noobing something
>                           here though because I never develop on
>                     windows before - other than "hello world"
>                           type stuff. And now I know why!
>                           >
>                           > Cheers if you can help.
>                           > Daniel
>                           > --
>                           > In the beginning Kibo created the
>                     Internet. Now the Internet was formless, and
>                           empty. Randomness was upon the face of
>                     computing, and the Spirit of ARPA moved
>                           upon the face of the computers. Then Kibo
>                     said, "Let there be data": and there was
>                           data. Kibo saw the data, and it was good, so
>                     Kibo divided the data from the
>                           randomness, and Kibo named the data
>                     Information, and the randomness Clueless. And
>                           the Information and the Clueless were the
>                     first Network.
>
>
>
>
>
>                 _______________________________________________
>                 sword-support mailing list
>                 sword-support at crosswire.org
>                 <mailto:sword-support at crosswire.org>
>
>
>
>
>         _______________________________________________
>         sword-devel mailing list: sword-devel at crosswire.org
>         <mailto:sword-devel at crosswire.org>
>         http://www.crosswire.org/mailman/listinfo/sword-devel
>         Instructions to unsubscribe/change your settings at above page
>
>
>
>
>     _______________________________________________
>     sword-devel mailing list: sword-devel at crosswire.org
>     <mailto:sword-devel at crosswire.org>
>     http://www.crosswire.org/mailman/listinfo/sword-devel
>     Instructions to unsubscribe/change your settings at above page
>
>
>
>
> This body part will be downloaded on demand.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.crosswire.org/pipermail/sword-devel/attachments/20141231/3d980892/attachment-0001.html>


More information about the sword-devel mailing list