Envek / obs-studio-node-example

Learn how to use OBS Studio from your Electron app for screen video recording
GNU General Public License v2.0
105 stars 19 forks source link

How to build custom 32 bit obs-studio-node for this project #38

Open alokmahor opened 3 years ago

alokmahor commented 3 years ago

I am able to build 64bit obs-studio-node with custom OSN_LIBOBS_URL

But I am not able to build 32bit obs-studio-node with custom 32bit OSN_LIBOBS_URL I followed following steps

First I built 32bit libobs using steps

  1. git clone --recursive https://github.com/stream-labs/obs-studio
  2. cd obs-studio
  3. mkdir build32
  4. cmake -G "Visual Studio 16 2019" -A Win32 -S . -B build32 -DDepsPath=C:\Users\alokm\Downloads\dependencies2019\win32 -DCMAKE_CONFIGURATION_TYPES=Release -DENABLE_UI=false -DENABLE_SCRIPTING=false
  5. cmake --build build32 --config Release
  6. cd .\build32\
  7. cpack -G TGZ I have got obs-studio/build32/obs-studio-x86-26.4.9-modified.tar.gz generated

I used this generated libobs for building obs-studio-node

  1. git clone https://github.com/stream-labs/obs-studio-node
  2. cd obs-studio-node
  3. mkdir build32
  4. cmake -G"Visual Studio 16 2019" -A Win32 -DOSN_LIBOBS_URL="C:/Users/alokm/tmp/streamlabs/obs-studio/build32/obs-studio-x86-26.4.9-modified.tar.gz" -B build32
  5. cmake --build build32 --config Release this step is giving linker error
util-crashmanager.obj : error LNK2019: unresolved external symbol "public: __thiscall base::FilePath::FilePath(void)" (??0FilePath@base@@QAE@XZ) re
ferenced in function "void __cdecl `dynamic initializer for 'db''(void)" (??__Edb@@YAXXZ) [C:\Users\alokm\tmp\streamlabs\obs-studio-node\build32\ob
s-studio-server\obs-studio-server.vcxproj]
util-crashmanager.obj : error LNK2019: unresolved external symbol "public: __thiscall base::FilePath::FilePath(class std::basic_string<wchar_t,stru
ct std::char_traits<wchar_t>,class std::allocator<wchar_t> > const &)" (??0FilePath@base@@QAE@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocat
or@_W@2@@std@@@Z) referenced in function "private: static bool __cdecl util::CrashManager::SetupCrashpad(void)" (?SetupCrashpad@CrashManager@util@@
CA_NXZ) [C:\Users\alokm\tmp\streamlabs\obs-studio-node\build32\obs-studio-server\obs-studio-server.vcxproj]
util-crashmanager.obj : error LNK2019: unresolved external symbol "public: __thiscall base::FilePath::~FilePath(void)" (??1FilePath@base@@QAE@XZ) r
eferenced in function "void __cdecl `dynamic atexit destructor for 'db''(void)" (??__Fdb@@YAXXZ) [C:\Users\alokm\tmp\streamlabs\obs-studio-node\bui
ld32\obs-studio-server\obs-studio-server.vcxproj]
util-crashmanager.obj : error LNK2019: unresolved external symbol "public: class base::FilePath & __thiscall base::FilePath::operator=(class base::
FilePath const &)" (??4FilePath@base@@QAEAAV01@ABV01@@Z) referenced in function "private: static bool __cdecl util::CrashManager::SetupCrashpad(voi
d)" (?SetupCrashpad@CrashManager@util@@CA_NXZ) [C:\Users\alokm\tmp\streamlabs\obs-studio-node\build32\obs-studio-server\obs-studio-server.vcxproj]
util-crashmanager.obj : error LNK2019: unresolved external symbol "public: static class std::unique_ptr<class crashpad::CrashReportDatabase,struct
std::default_delete<class crashpad::CrashReportDatabase> > __cdecl crashpad::CrashReportDatabase::Initialize(class base::FilePath const &)" (?Initi
alize@CrashReportDatabase@crashpad@@SA?AV?$unique_ptr@VCrashReportDatabase@crashpad@@U?$default_delete@VCrashReportDatabase@crashpad@@@std@@@std@@A
BVFilePath@base@@@Z) referenced in function "private: static bool __cdecl util::CrashManager::SetupCrashpad(void)" (?SetupCrashpad@CrashManager@uti
l@@CA_NXZ) [C:\Users\alokm\tmp\streamlabs\obs-studio-node\build32\obs-studio-server\obs-studio-server.vcxproj]
util-crashmanager.obj : error LNK2019: unresolved external symbol "public: __thiscall crashpad::CrashpadClient::CrashpadClient(void)" (??0CrashpadC
lient@crashpad@@QAE@XZ) referenced in function "void __cdecl `dynamic initializer for 'client''(void)" (??__Eclient@@YAXXZ) [C:\Users\alokm\tmp\str
eamlabs\obs-studio-node\build32\obs-studio-server\obs-studio-server.vcxproj]
util-crashmanager.obj : error LNK2019: unresolved external symbol "public: __thiscall crashpad::CrashpadClient::~CrashpadClient(void)" (??1Crashpad
Client@crashpad@@QAE@XZ) referenced in function "void __cdecl `dynamic atexit destructor for 'client''(void)" (??__Fclient@@YAXXZ) [C:\Users\alokm\
tmp\streamlabs\obs-studio-node\build32\obs-studio-server\obs-studio-server.vcxproj]
util-crashmanager.obj : error LNK2019: unresolved external symbol "public: bool __thiscall crashpad::CrashpadClient::StartHandler(class base::FileP
ath const &,class base::FilePath const &,class base::FilePath const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocat
or<char> > const &,class std::map<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::basic_string<c
har,struct std::char_traits<char>,class std::allocator<char> >,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class st
d::allocator<char> > >,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char>
> const ,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > > > const &,class std::vector<class std::basic_s
tring<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::char_traits<cha
r>,class std::allocator<char> > > > const &,bool,bool)" (?StartHandler@CrashpadClient@crashpad@@QAE_NABVFilePath@base@@00ABV?$basic_string@DU?$char
_traits@D@std@@V?$allocator@D@2@@std@@ABV?$map@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@U?$less@V?$basic_string@DU?$char_t
raits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@@std@@@2@@6@ABV?$
vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@
@6@_N4@Z) referenced in function "private: static bool __cdecl util::CrashManager::SetupCrashpad(void)" (?SetupCrashpad@CrashManager@util@@CA_NXZ)
[C:\Users\alokm\tmp\streamlabs\obs-studio-node\build32\obs-studio-server\obs-studio-server.vcxproj]
util-crashmanager.obj : error LNK2019: unresolved external symbol "public: bool __thiscall crashpad::CrashpadClient::WaitForHandlerStart(unsigned i
nt)" (?WaitForHandlerStart@CrashpadClient@crashpad@@QAE_NI@Z) referenced in function "private: static bool __cdecl util::CrashManager::SetupCrashpa
d(void)" (?SetupCrashpad@CrashManager@util@@CA_NXZ) [C:\Users\alokm\tmp\streamlabs\obs-studio-node\build32\obs-studio-server\obs-studio-server.vcxp
roj]
util-crashmanager.obj : error LNK2019: unresolved external symbol "public: bool __thiscall crashpad::Settings::SetUploadsEnabled(bool)" (?SetUpload
sEnabled@Settings@crashpad@@QAE_N_N@Z) referenced in function "private: static bool __cdecl util::CrashManager::SetupCrashpad(void)" (?SetupCrashpa
d@CrashManager@util@@CA_NXZ) [C:\Users\alokm\tmp\streamlabs\obs-studio-node\build32\obs-studio-server\obs-studio-server.vcxproj]
C:\Users\alokm\tmp\streamlabs\obs-studio-node\build32\obs-studio-server\Release\obs32.exe : fatal error LNK1120: 10 unresolved externals [C:\Users\
alokm\tmp\streamlabs\obs-studio-node\build32\obs-studio-server\obs-studio-server.vcxproj]

What I am missing in case of 32bit building?