[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