Subchapter 150.19
troubleshooting/build-errors.mdMarkdown6 KBView on GitHub
Common build errors when working with the Zoom Video SDK for Windows and how to fix them.
SDK headers have dependency issues. Include in this exact order:
#include <windows.h> // MUST be first
#include <cstdint> // MUST be second (for uint32_t)
// Standard library
#include <iostream>
#include <string>
#include <vector>
#include <map>
#include <fstream>
#include <thread>
// SDK headers
#include "zoom_video_sdk_api.h"
#include "zoom_video_sdk_interface.h"
#include "zoom_video_sdk_delegate_interface.h"
#include "zoom_sdk_raw_data_def.h" // For YUVRawDataI420error C2039: 'uint32_t': is not a member of 'std'SDK headers use uint32_t without including <cstdint>.
Add #include <cstdint> before SDK headers:
#include <windows.h>
#include <cstdint> // Add this!
#include "zoom_video_sdk_api.h"error C2065: 'YUVRawDataI420': undeclared identifierThe class is only forward-declared in some headers.
Include the raw data definition header:
#include "zoom_sdk_raw_data_def.h"fatal error C1083: Cannot open include file: 'json/json.h': No such file or directoryjsoncpp library not installed or not in include path.
Install via vcpkg and configure include paths:
# Install vcpkg
git clone https://github.com/Microsoft/vcpkg.git C:\vcpkg
cd C:\vcpkg
.\bootstrap-vcpkg.bat
.\vcpkg integrate install
# Install jsoncpp
.\vcpkg install jsoncpp:x64-windowsThen add to Additional Include Directories:
C:\vcpkg\packages\jsoncpp_x64-windows\includeerror LNK2019: unresolved external symbol "CreateZoomVideoSDKObj"SDK library not linked.
Add to Additional Library Directories:
$(SolutionDir)SDK\libAdd to Additional Dependencies:
sdk.libThe code execution cannot proceed because sdk.dll was not found.SDK DLLs not in output directory.
Add Post-Build Event:
xcopy /Y /D "$(SolutionDir)SDK\bin\*.*" "$(OutDir)"Or manually copy all DLLs from SDK\bin\ to your output directory.
error C2259: 'MyDelegate': cannot instantiate abstract classNot all pure virtual methods implemented in your delegate class.
Implement ALL 80+ methods in IZoomVideoSDKDelegate. Even unused methods need empty implementations:
class MyDelegate : public IZoomVideoSDKDelegate {
public:
// Implement all methods, even if empty
void onSessionJoin() override { /* your code */ }
void onSessionLeave() override {}
void onError(ZoomVideoSDKErrors, int) override {}
void onUserJoin(IZoomVideoSDKUserHelper*, IVideoSDKVector<IZoomVideoSDKUser*>*) override {}
// ... all 80+ methods
};See Delegate Methods for complete list.
error C2027: use of undefined type 'ZOOMVIDEOSDK_NAMESPACE::IZoomVideoSDK'Missing include or namespace.
#include "zoom_video_sdk_interface.h"
// Use namespace
using namespace ZOOMVIDEOSDK_NAMESPACE;
// Or
USING_ZOOM_VIDEO_SDK_NAMESPACEC/C++ → General → Additional Include Directories:
$(SolutionDir)SDK\h
$(SolutionDir)SDK\h\helpers
C:\vcpkg\packages\jsoncpp_x64-windows\includeLinker → General → Additional Library Directories:
$(SolutionDir)SDK\lib
C:\vcpkg\packages\jsoncpp_x64-windows\libLinker → Input → Additional Dependencies:
sdk.lib
jsoncpp.libBuild Events → Post-Build Event → Command Line:
xcopy /Y /D "$(SolutionDir)SDK\bin\*.*" "$(OutDir)"
xcopy /Y /D "$(ProjectDir)config.json" "$(OutDir)"C/C++ → Code Generation → Runtime Library:
When building from Git Bash, use this pattern:
MSYS_NO_PATHCONV=1 "/c/Program Files/Microsoft Visual Studio/2022/Community/MSBuild/Current/Bin/MSBuild.exe" \
YourProject.vcxproj \
/p:Configuration=Release \
/p:Platform=x64 \
/t:Build \
/verbosity:minimalKey points:
MSYS_NO_PATHCONV=1 prevents path conversion issuesExpected structure:
YourProject/
├── SDK/
│ ├── bin/ # DLLs (copy to output)
│ │ ├── sdk.dll
│ │ ├── *.dll # Many other DLLs
│ ├── h/ # Headers
│ │ ├── zoom_video_sdk_api.h
│ │ ├── zoom_video_sdk_interface.h
│ │ ├── zoom_video_sdk_delegate_interface.h
│ │ ├── zoom_sdk_raw_data_def.h
│ │ └── helpers/
│ │ └── *.h
│ └── lib/ # Libraries
│ └── sdk.lib
├── YourProject.cpp
├── YourProject.vcxproj
└── config.jsonTL;DR: Include <windows.h> first, then <cstdint>, then SDK headers. Link sdk.lib. Copy DLLs to output. Implement all 80+ delegate methods.