[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