[sword-devel] SWORD 1.9.0RC3 Available - Windows

Gary Holmlund gary.holmlund at gmail.com
Sun Oct 11 12:18:28 EDT 2020


Troy and Greg,

I have compiled BibleTime with Sword 1.8.903 on Windows. To do this I 
had to make 4 changes to cmake files. The first and last one are easy 
changes. The second and third will need more effort to decide how to 
properly fix them.

Thanks for your great efforts.

Gary Holmlund


1. Find ICU Quiet.

52c52
< FIND_PACKAGE(ICU
---
 > FIND_PACKAGE(ICU QUIET



2.I had to comment out the find of clucene.

55c55
< FIND_PACKAGE(CLucene QUIET)
---
 > #FIND_PACKAGE(CLucene QUIET)

     If it is not commented out, I get this error.

       CMake Error at cmake/FindCLucene.cmake:82 (FILE):
       FILE failed to open for reading (No such file or directory):
C:/bibletime-tmp/b5/sword-prefix/src/sword-build/./CLucene/clucene-config.h

       NOTE: I find CLucene/clucene-config.h in the include directory.



3. buildtest.exe build error - I comment out the building of 
buildtest.exe in CMakeLists.txt

272,277c272,277
< ADD_EXECUTABLE(buildtest buildtest.cpp)
< IF(BUILDING_STATIC)
<       TARGET_LINK_LIBRARIES(buildtest sword_static)
< ELSE(BUILDING_STATIC)
<       TARGET_LINK_LIBRARIES(buildtest sword)
< ENDIF(BUILDING_STATIC)
---
 > #ADD_EXECUTABLE(buildtest buildtest.cpp)
 > #IF(BUILDING_STATIC)
 > #     TARGET_LINK_LIBRARIES(buildtest sword_static)
 > #ELSE(BUILDING_STATIC)
 > #     TARGET_LINK_LIBRARIES(buildtest sword)
 > #ENDIF(BUILDING_STATIC)

Here are the errors I got without this change.

buildtest.cpp
5>C:\bibletime-tmp\sword\include\swkey.h(92,32): warning C4251: 
'sword::SWKey::localeCache': class 'sword::SWKey::LocaleCache' needs to 
have dll-interface to be used by clients of class 'sword::SWKey' 
[C:\bibletime-tmp\b6\sword-prefix\src\sword-build\buildtest.vcxproj]
5>C:\bibletime-tmp\sword\include\swkey.h(79): message : see declaration 
of 'sword::SWKey::LocaleCache' 
[C:\bibletime-tmp\b6\sword-prefix\src\sword-build\buildtest.vcxproj]
5>C:\bibletime-tmp\sword\include\swconfig.h(125,34): warning C4251: 
'sword::SWConfig::Sections': class 
'std::map<sword::SWBuf,sword::ConfigEntMap,std::less<sword::SWBuf>,std::allocator<std::pair<const 
sword::SWBuf,sword::ConfigEntMap>>>' needs to have dll-interface to be 
used by clients of class 'sword::SWConfig' 
[C:\bibletime-tmp\b6\sword-prefix\src\sword-build\buildtest.vcxproj]
5>C:\bibletime-tmp\sword\include\swconfig.h(36): message : see 
declaration of 
'std::map<sword::SWBuf,sword::ConfigEntMap,std::less<sword::SWBuf>,std::allocator<std::pair<const 
sword::SWBuf,sword::ConfigEntMap>>>' 
[C:\bibletime-tmp\b6\sword-prefix\src\sword-build\buildtest.vcxproj]
5>C:\bibletime-tmp\sword\include\swmodule.h(118,24): warning C4251: 
'sword::SWModule::ownConfig': class 
'sword::multimapwithdefault<sword::SWBuf,sword::SWBuf,std::less<sword::SWBuf>>' 
needs to have dll-interface to be used by clients of class 
'sword::SWModule' 
[C:\bibletime-tmp\b6\sword-prefix\src\sword-build\buildtest.vcxproj]
5>C:\bibletime-tmp\sword\include\swconfig.h(35): message : see 
declaration of 
'sword::multimapwithdefault<sword::SWBuf,sword::SWBuf,std::less<sword::SWBuf>>' 
[C:\bibletime-tmp\b6\sword-prefix\src\sword-build\buildtest.vcxproj]
5>C:\bibletime-tmp\sword\include\swmodule.h(120,43): warning C4251: 
'sword::SWModule::entryAttributes': class 
'std::map<sword::SWBuf,sword::AttributeList,std::less<sword::SWBuf>,std::allocator<std::pair<const 
sword::SWBuf,sword::AttributeList>>>' needs to have dll-interface to be 
used by clients of class 'sword::SWModule' 
[C:\bibletime-tmp\b6\sword-prefix\src\sword-build\buildtest.vcxproj]
5>C:\bibletime-tmp\sword\include\swmodule.h(78): message : see 
declaration of 
'std::map<sword::SWBuf,sword::AttributeList,std::less<sword::SWBuf>,std::allocator<std::pair<const 
sword::SWBuf,sword::AttributeList>>>' 
[C:\bibletime-tmp\b6\sword-prefix\src\sword-build\buildtest.vcxproj]
5>C:\bibletime-tmp\sword\include\swmodule.h(142,30): warning C4251: 
'sword::SWModule::rawdisp': class 'sword::SWModule::StdOutDisplay' needs 
to have dll-interface to be used by clients of class 'sword::SWModule' 
[C:\bibletime-tmp\b6\sword-prefix\src\sword-build\buildtest.vcxproj]
5>C:\bibletime-tmp\sword\include\swmodule.h(107): message : see 
declaration of 'sword::SWModule::StdOutDisplay' 
[C:\bibletime-tmp\b6\sword-prefix\src\sword-build\buildtest.vcxproj]
5>     Creating library 
C:/bibletime-tmp/b6/sword-prefix/src/sword-build/Release/buildtest.lib 
and object 
C:/bibletime-tmp/b6/sword-prefix/src/sword-build/Release/buildtest.exp
5>buildtest.obj : error LNK2019: unresolved external symbol "public: 
static char * sword::SWBuf::nullStr" (?nullStr at SWBuf@sword@@2PADA) 
referenced in function "public: __thiscall std::pair<class sword::SWBuf 
const ,class sword::multimapwithdefault<class sword::SWBuf,class 
sword::SWBuf,struct std::less<class sword::SWBuf> > >::pair<class 
sword::SWBuf const ,class sword::multimapwithdefault<class 
sword::SWBuf,class sword::SWBuf,struct std::less<class sword::SWBuf> > 
 ><class sword::SWBuf &&>(struct std::piecewise_construct_t,class 
std::tuple<class sword::SWBuf &&>,class std::tuple<>)" 
(??$?0$$QAVSWBuf at sword@@$$Z$$V@?$pair@$$CBVSWBuf at sword@@V?$multimapwithdefault at VSWBuf@sword@@V12 at U?$less at VSWBuf@sword@@@std@@@2@@std@@QAE at Upiecewise_construct_t@1 at V?$tuple@$$QAVSWBuf at sword@@@1 at V?$tuple@$$V at 1@@Z) 
[C:\bibletime-tmp\b6\sword-prefix\src\sword-build\buildtest.vcxproj]
5>C:\bibletime-tmp\b6\sword-prefix\src\sword-build\Release\buildtest.exe 
: fatal error LNK1120: 1 unresolved externals 
[C:\bibletime-tmp\b6\sword-prefix\src\sword-build\buildtest.vcxproj]
5>Done building project "sword.vcxproj" -- FAILED.




4. I also ran into the problem in cmake/options.cmake that ZdPo Ster found.

29c29
<       SET(SWORD_INSTALL_DIR "C:\\Program Files (x86)\\libsword\\")
---
 >       SET(SWORD_INSTALL_DIR "C:/Program Files (x86)/libsword")

NOTE: I override this value externally anyway.











More information about the sword-devel mailing list