[sword-devel] Building libsword on windows
Jon Behrens
jbb at crimsonthread.com
Wed Dec 31 12:03:19 MST 2014
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 Office
> +64 21 1408 708 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 Office
>>> +64 21 1408 708 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> 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> 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>
>>>> 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
>>
>>
>
> _______________________________________________
> sword-devel mailing list: sword-devel at crosswire.org
> http://www.crosswire.org/mailman/listinfo/sword-devel
> Instructions to unsubscribe/change your settings at above page
More information about the sword-devel
mailing list