Resolved, Windows build instructions for developers is updated in strawberrymusicplayer/strawberry-msvc.
Posts made by Erriez
-
RE: Windows build instructions
-
RE: Windows build instructions
I found the root cause as I was accidentally mixing debug and release builds.
Unfortunately, the Windows MSVC build is currently broken with outdated instructions. I've applied multiple fixes manually and now builds successfully. I'll create pull-requests for each item.
-
RE: Windows build instructions
@jonas Thanks for your quick reply.
Instead of installing all tools manually, I've now executed the batch files on a clean Windows 11 and configured the environment variables as described:
- Run download.bat (Windows Terminal)
- Run install.bat (Windows Terminal as administrator. It requires some manual installations like Visual Studio 2022)
- Run build.bat (Run in Visual Studio 2022 x86_x64 Native Tools Command Prompt; It builds all dependencies and sources which takes hours, still running...)
I had no success by extracting binary dependencies to
C:\strawberry_msvc_x86_64_debug
as it results in unsatisfied requirement errors.I assume this is the right way of building?
Note: There is a bug in download.bat which should be changed to:
-https://7-zip.org/a/7z2201-x64.exe +https://7-zip.org/a/7z%7ZIP_VERSION%-x64.exe
as
version.bat
contains@set 7ZIP_VERSION=2301
which now results in a download/install filename mismatch. -
Windows build instructions
I'm following the Strawberry MSVC build instructions for Windows to add a new feature, but encounter some issues:
- I've completed steps
Requirements
...Alternative 1
. - The following step is unclear:
Add the following extra CMake arguments: For debug: -DARCH=x86_64 -DICU_ROOT=c:\\strawberry_msvc_x86_64_debug For release: -DARCH=x86_64 -DICU_ROOT=c:\\strawberry_msvc_x86_64_release
I've interpreted this as:
Ctrl+Shift+P
Type:CMake Settings
Assumming the following setting should be updated:Is this correct for release build as there are two
command arguments
as shown in the screenshot?When building
strawberry.exe
, it results in build errors:Severity Code Description Project File Line Suppression State Details Error LNK2001 unresolved external symbol "__declspec(dllimport) public: __cdecl QtPrivate::ResultIteratorBase::~ResultIteratorBase(void)" (__imp_??1ResultIteratorBase@QtPrivate@@QEAA@XZ) C:\straberrymusicplayer\out\build\x64-Debug\straberrymusicplayer C:\straberrymusicplayer\out\build\x64-Debug\organizedialog.cpp.obj 1 Error LNK2019 unresolved external symbol "__declspec(dllimport) public: static void __cdecl icu_75::UMemory::operator delete(void *)" (__imp_??3UMemory@icu_75@@SAXPEAX@Z) referenced in function "public: virtual void * __cdecl icu_75::StringByteSink<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >::`scalar deleting destructor'(unsigned int)" (??_G?$StringByteSink@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@icu_75@@UEAAPEAXI@Z) C:\straberrymusicplayer\out\build\x64-Debug\straberrymusicplayer C:\straberrymusicplayer\out\build\x64-Debug\transliterate.cpp.obj 1 Error LNK2019 unresolved external symbol "__declspec(dllimport) public: __cdecl icu_75::ByteSink::ByteSink(void)" (__imp_??0ByteSink@icu_75@@QEAA@XZ) referenced in function "public: __cdecl icu_75::StringByteSink<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >::StringByteSink<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > *,int)" (??0?$StringByteSink@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@icu_75@@QEAA@PEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z) C:\straberrymusicplayer\out\build\x64-Debug\straberrymusicplayer C:\straberrymusicplayer\out\build\x64-Debug\transliterate.cpp.obj 1 Error LNK2019 unresolved external symbol "__declspec(dllimport) public: virtual __cdecl icu_75::ByteSink::~ByteSink(void)" (__imp_??1ByteSink@icu_75@@UEAA@XZ) referenced in function "int `public: __cdecl icu_75::StringByteSink<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >::StringByteSink<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > *,int)'::`1'::dtor$0" (?dtor$0@?0???0?$StringByteSink@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@icu_75@@QEAA@PEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z@4HA) C:\straberrymusicplayer\out\build\x64-Debug\straberrymusicplayer C:\straberrymusicplayer\out\build\x64-Debug\transliterate.cpp.obj 1 Error LNK2019 unresolved external symbol "__declspec(dllimport) public: void __cdecl icu_75::UnicodeString::toUTF8(class icu_75::ByteSink &)const " (__imp_?toUTF8@UnicodeString@icu_75@@QEBAXAEAVByteSink@2@@Z) referenced in function "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __cdecl icu_75::UnicodeString::toUTF8String<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &)const " (??$toUTF8String@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@UnicodeString@icu_75@@QEBAAEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAV23@@Z) C:\straberrymusicplayer\out\build\x64-Debug\straberrymusicplayer C:\straberrymusicplayer\out\build\x64-Debug\transliterate.cpp.obj 1 Error LNK2019 unresolved external symbol "__declspec(dllimport) public: int __cdecl icu_75::UnicodeString::length(void)const " (__imp_?length@UnicodeString@icu_75@@QEBAHXZ) referenced in function "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __cdecl icu_75::UnicodeString::toUTF8String<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &)const " (??$toUTF8String@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@UnicodeString@icu_75@@QEBAAEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAV23@@Z) C:\straberrymusicplayer\out\build\x64-Debug\straberrymusicplayer C:\straberrymusicplayer\out\build\x64-Debug\transliterate.cpp.obj 1 Error LNK2019 unresolved external symbol "__declspec(dllimport) public: __cdecl icu_75::UnicodeString::UnicodeString(char const *)" (__imp_??0UnicodeString@icu_75@@QEAA@PEBD@Z) referenced in function "class QString __cdecl Utilities::Transliterate(class QString const &)" (?Transliterate@Utilities@@YA?AVQString@@AEBV2@@Z) C:\straberrymusicplayer\out\build\x64-Debug\straberrymusicplayer C:\straberrymusicplayer\out\build\x64-Debug\transliterate.cpp.obj 1 Error LNK2019 unresolved external symbol "__declspec(dllimport) public: virtual __cdecl icu_75::UnicodeString::~UnicodeString(void)" (__imp_??1UnicodeString@icu_75@@UEAA@XZ) referenced in function "class QString __cdecl Utilities::Transliterate(class QString const &)" (?Transliterate@Utilities@@YA?AVQString@@AEBV2@@Z) C:\straberrymusicplayer\out\build\x64-Debug\straberrymusicplayer C:\straberrymusicplayer\out\build\x64-Debug\transliterate.cpp.obj 1 Error LNK2019 unresolved external symbol "__declspec(dllimport) public: static class icu_75::Transliterator * __cdecl icu_75::Transliterator::createInstance(class icu_75::UnicodeString const &,enum UTransDirection,enum UErrorCode &)" (__imp_?createInstance@Transliterator@icu_75@@SAPEAV12@AEBVUnicodeString@2@W4UTransDirection@@AEAW4UErrorCode@@@Z) referenced in function "class QString __cdecl Utilities::Transliterate(class QString const &)" (?Transliterate@Utilities@@YA?AVQString@@AEBV2@@Z) C:\straberrymusicplayer\out\build\x64-Debug\straberrymusicplayer C:\straberrymusicplayer\out\build\x64-Debug\transliterate.cpp.obj 1 Error LNK2001 unresolved external symbol "public: virtual char * __cdecl icu_75::ByteSink::GetAppendBuffer(int,int,char *,int,int *)" (?GetAppendBuffer@ByteSink@icu_75@@UEAAPEADHHPEADHPEAH@Z) C:\straberrymusicplayer\out\build\x64-Debug\straberrymusicplayer C:\straberrymusicplayer\out\build\x64-Debug\transliterate.cpp.obj 1 Error LNK2001 unresolved external symbol "public: virtual void __cdecl icu_75::ByteSink::Flush(void)" (?Flush@ByteSink@icu_75@@UEAAXXZ) C:\straberrymusicplayer\out\build\x64-Debug\straberrymusicplayer C:\straberrymusicplayer\out\build\x64-Debug\transliterate.cpp.obj 1 Error LNK2019 unresolved external symbol ucsdet_open_75 referenced in function "class QByteArray __cdecl Utilities::TextEncodingFromData(class QByteArray const &)" (?TextEncodingFromData@Utilities@@YA?AVQByteArray@@AEBV2@@Z) C:\straberrymusicplayer\out\build\x64-Debug\straberrymusicplayer C:\straberrymusicplayer\out\build\x64-Debug\textencodingutils.cpp.obj 1 Error LNK2019 unresolved external symbol ucsdet_close_75 referenced in function "public: __cdecl `class QByteArray __cdecl Utilities::TextEncodingFromData(class QByteArray const &)'::`2'::<lambda_1>::operator()(void)const " (??R<lambda_1>@?1??TextEncodingFromData@Utilities@@YA?AVQByteArray@@AEBV3@@Z@QEBA@XZ) C:\straberrymusicplayer\out\build\x64-Debug\straberrymusicplayer C:\straberrymusicplayer\out\build\x64-Debug\textencodingutils.cpp.obj 1 Error LNK2019 unresolved external symbol ucsdet_setText_75 referenced in function "class QByteArray __cdecl Utilities::TextEncodingFromData(class QByteArray const &)" (?TextEncodingFromData@Utilities@@YA?AVQByteArray@@AEBV2@@Z) C:\straberrymusicplayer\out\build\x64-Debug\straberrymusicplayer C:\straberrymusicplayer\out\build\x64-Debug\textencodingutils.cpp.obj 1 Error LNK2019 unresolved external symbol ucsdet_detect_75 referenced in function "class QByteArray __cdecl Utilities::TextEncodingFromData(class QByteArray const &)" (?TextEncodingFromData@Utilities@@YA?AVQByteArray@@AEBV2@@Z) C:\straberrymusicplayer\out\build\x64-Debug\straberrymusicplayer C:\straberrymusicplayer\out\build\x64-Debug\textencodingutils.cpp.obj 1 Error LNK2019 unresolved external symbol ucsdet_getName_75 referenced in function "class QByteArray __cdecl Utilities::TextEncodingFromData(class QByteArray const &)" (?TextEncodingFromData@Utilities@@YA?AVQByteArray@@AEBV2@@Z) C:\straberrymusicplayer\out\build\x64-Debug\straberrymusicplayer C:\straberrymusicplayer\out\build\x64-Debug\textencodingutils.cpp.obj 1 Error LNK2001 unresolved external symbol "__declspec(dllimport) public: __cdecl QtPrivate::ResultIteratorBase::~ResultIteratorBase(void)" (__imp_??1ResultIteratorBase@QtPrivate@@QEAA@XZ) C:\straberrymusicplayer\out\build\x64-Debug\straberrymusicplayer C:\straberrymusicplayer\out\build\x64-Debug\moodbaritemdelegate.cpp.obj 1 Error LNK2001 unresolved external symbol "__declspec(dllimport) public: __cdecl QtPrivate::ResultIteratorBase::~ResultIteratorBase(void)" (__imp_??1ResultIteratorBase@QtPrivate@@QEAA@XZ) C:\straberrymusicplayer\out\build\x64-Debug\straberrymusicplayer C:\straberrymusicplayer\out\build\x64-Debug\albumcoverchoicecontroller.cpp.obj 1 Error LNK2001 unresolved external symbol "__declspec(dllimport) public: __cdecl QtPrivate::ResultIteratorBase::~ResultIteratorBase(void)" (__imp_??1ResultIteratorBase@QtPrivate@@QEAA@XZ) C:\straberrymusicplayer\out\build\x64-Debug\straberrymusicplayer C:\straberrymusicplayer\out\build\x64-Debug\edittagdialog.cpp.obj 1 Error LNK2001 unresolved external symbol "__declspec(dllimport) public: __cdecl QtPrivate::ResultIteratorBase::~ResultIteratorBase(void)" (__imp_??1ResultIteratorBase@QtPrivate@@QEAA@XZ) C:\straberrymusicplayer\out\build\x64-Debug\straberrymusicplayer C:\straberrymusicplayer\out\build\x64-Debug\tagfetcher.cpp.obj 1 Error LNK2001 unresolved external symbol "__declspec(dllimport) public: __cdecl QtPrivate::ResultIteratorBase::~ResultIteratorBase(void)" (__imp_??1ResultIteratorBase@QtPrivate@@QEAA@XZ) C:\straberrymusicplayer\out\build\x64-Debug\straberrymusicplayer C:\straberrymusicplayer\out\build\x64-Debug\playlistdelegates.cpp.obj 1 Error LNK2001 unresolved external symbol "__declspec(dllimport) public: __cdecl QtPrivate::ResultIteratorBase::~ResultIteratorBase(void)" (__imp_??1ResultIteratorBase@QtPrivate@@QEAA@XZ) C:\straberrymusicplayer\out\build\x64-Debug\straberrymusicplayer C:\straberrymusicplayer\out\build\x64-Debug\playlistmanager.cpp.obj 1 Error LNK2001 unresolved external symbol "__declspec(dllimport) public: __cdecl QtPrivate::ResultIteratorBase::~ResultIteratorBase(void)" (__imp_??1ResultIteratorBase@QtPrivate@@QEAA@XZ) C:\straberrymusicplayer\out\build\x64-Debug\straberrymusicplayer C:\straberrymusicplayer\out\build\x64-Debug\playlistgeneratorinserter.cpp.obj 1 Error LNK2001 unresolved external symbol "__declspec(dllimport) public: __cdecl QtPrivate::ResultIteratorBase::~ResultIteratorBase(void)" (__imp_??1ResultIteratorBase@QtPrivate@@QEAA@XZ) C:\straberrymusicplayer\out\build\x64-Debug\straberrymusicplayer C:\straberrymusicplayer\out\build\x64-Debug\smartplaylistsearchpreview.cpp.obj 1 Error LNK2001 unresolved external symbol "__declspec(dllimport) public: __cdecl QtPrivate::ResultIteratorBase::~ResultIteratorBase(void)" (__imp_??1ResultIteratorBase@QtPrivate@@QEAA@XZ) C:\straberrymusicplayer\out\build\x64-Debug\straberrymusicplayer C:\straberrymusicplayer\out\build\x64-Debug\gstengine.cpp.obj 1 Error LNK2001 unresolved external symbol "__declspec(dllimport) public: __cdecl QtPrivate::ResultIteratorBase::~ResultIteratorBase(void)" (__imp_??1ResultIteratorBase@QtPrivate@@QEAA@XZ) C:\straberrymusicplayer\out\build\x64-Debug\straberrymusicplayer C:\straberrymusicplayer\out\build\x64-Debug\gstenginepipeline.cpp.obj 1 Error LNK2001 unresolved external symbol "__declspec(dllimport) public: __cdecl QtPrivate::ResultIteratorBase::~ResultIteratorBase(void)" (__imp_??1ResultIteratorBase@QtPrivate@@QEAA@XZ) C:\straberrymusicplayer\out\build\x64-Debug\straberrymusicplayer C:\straberrymusicplayer\out\build\x64-Debug\collectionmodel.cpp.obj 1 Error LNK2001 unresolved external symbol "__declspec(dllimport) public: __cdecl QtPrivate::ResultIteratorBase::~ResultIteratorBase(void)" (__imp_??1ResultIteratorBase@QtPrivate@@QEAA@XZ) C:\straberrymusicplayer\out\build\x64-Debug\straberrymusicplayer C:\straberrymusicplayer\out\build\x64-Debug\playlist.cpp.obj 1 Error LNK1120 16 unresolved externals C:\straberrymusicplayer\out\build\x64-Debug\straberrymusicplayer C:\straberrymusicplayer\out\build\x64-Debug\strawberry.exe 1
- In step
Copy dependencies (MSYS2 Shell)
I'm lost:
Run the "copy-deps-msvc-x64-debug-qt6.bat" or "copy-deps-msvc-x64-release-qt6.bat" batch file first to copy all plugins to the build directory.
Where is are these
.bat
files located? - I've completed steps
-
RE: Set ratings per Dbus/shortcut.
@gerion I was also looking for a keyboard shortcut to set song rating. It would be great to have such feature.