my test code
```C++
#include "SkottieWrapper.h"
#include "include/core/SkCanvas.h"
#include "include/core/SkGraphics.h"
#include "include/core/SkPictureRecorder.h"
#include "include/core/SkStream.h"
#include "include/core/SkSurface.h"
#include "include/core/SkImageInfo.h"
#include "src/utils/SkOSPath.h"
#include "include/encode/SkPngEncoder.h"
#include "modules/skottie/include/Skottie.h"
int main(int argc, char *argv[])
{
auto ani = skresources::CachingResourceProvider::Make(
skresources::DataURIResourceProviderProxy::Make(
skresources::FileResourceProvider::Make(SkOSPath::Dirname("/"),
/*predecode=*/true), /*predecode=*/true));
return 0;
}
```
i compile the source file and link with
skia
skottie
sksg
skshaper
skresources
skparagraph
compression_utils_portable
pathkit
dng_sdk
particles
piex
sfntly
svg
but i found some symbols is not found,
[main] Building folder: testskia
[build] Starting build
[proc] Executing command: /usr/local/bin/cmake --build /home/john/Desktop/testskia/build --config Debug --target all -- -j 10
[build] [ 50%] Linking CXX executable testskia
[build] /home/john/Desktop/SkottieWrapper/third_party/skia/out/Skottie/libskottie.a(libskresources.SkResources.o): In function `skresources::MultiFrameImageAsset::Make(sk_sp<SkData>, bool)':
[build] SkResources.cpp:(.text._ZN11skresources20MultiFrameImageAsset4MakeE5sk_spI6SkDataEb+0x2e): undefined reference to `SkCodec::MakeFromData(sk_sp<SkData>, SkPngChunkReader*)'
[build] SkResources.cpp:(.text._ZN11skresources20MultiFrameImageAsset4MakeE5sk_spI6SkDataEb+0x46): undefined reference to `SkData::~SkData()'
[build] SkResources.cpp:(.text._ZN11skresources20MultiFrameImageAsset4MakeE5sk_spI6SkDataEb+0x4e): undefined reference to `SkData::operator delete(void*)'
[build] SkResources.cpp:(.text._ZN11skresources20MultiFrameImageAsset4MakeE5sk_spI6SkDataEb+0x8d): undefined reference to `SkAnimCodecPlayer::SkAnimCodecPlayer(std::unique_ptr<SkCodec, std::default_delete<SkCodec> >)'
[build] /home/john/Desktop/SkottieWrapper/third_party/skia/out/Skottie/libskottie.a(libskresources.SkResources.o): In function `skresources::MultiFrameImageAsset::generateFrame(float)':
[build] SkResources.cpp:(.text._ZN11skresources20MultiFrameImageAsset13generateFrameEf+0x25): undefined reference to `SkAnimCodecPlayer::seek(unsigned int)'
[build] SkResources.cpp:(.text._ZN11skresources20MultiFrameImageAsset13generateFrameEf+0x31): undefined reference to `SkAnimCodecPlayer::getFrame()'
[build] SkResources.cpp:(.text._ZN11skresources20MultiFrameImageAsset13generateFrameEf+0x4c): undefined reference to `SkImage::isLazyGenerated() const'
[build] SkResources.cpp:(.text._ZN11skresources20MultiFrameImageAsset13generateFrameEf+0x8f): undefined reference to `SkImage::makeRasterImage(SkImage::CachingHint) const'
[build] SkResources.cpp:(.text._ZN11skresources20MultiFrameImageAsset13generateFrameEf+0x156): undefined reference to `SkBitmap::SkBitmap()'
[build] SkResources.cpp:(.text._ZN11skresources20MultiFrameImageAsset13generateFrameEf+0x166): undefined reference to `SkColorInfo::bytesPerPixel() const'
[build] SkResources.cpp:(.text._ZN11skresources20MultiFrameImageAsset13generateFrameEf+0x183): undefined reference to `SkBitmap::tryAllocPixels(SkImageInfo const&, unsigned long)'
[build] SkResources.cpp:(.text._ZN11skresources20MultiFrameImageAsset13generateFrameEf+0x1af): undefined reference to `SkImage::scalePixels(SkPixmap const&, SkSamplingOptions const&, SkImage::CachingHint) const'
[build] SkResources.cpp:(.text._ZN11skresources20MultiFrameImageAsset13generateFrameEf+0x1c2): undefined reference to `SkBitmap::asImage() const'
[build] SkResources.cpp:(.text._ZN11skresources20MultiFrameImageAsset13generateFrameEf+0x207): undefined reference to `SkBitmap::~SkBitmap()'
[build] /home/john/Desktop/SkottieWrapper/third_party/skia/out/Skottie/libskottie.a(libskresources.SkResources.o): In function `skresources::FileResourceProvider::Make(SkString, bool)':
[build] SkResources.cpp:(.text._ZN11skresources20FileResourceProvider4MakeE8SkStringb+0x1d): undefined reference to `sk_isdir(char const*)'
[build] /home/john/Desktop/SkottieWrapper/third_party/skia/out/Skottie/libskottie.a(libskresources.SkResources.o): In function `skresources::FileResourceProvider::load(char const*, char const*) const':
[build] SkResources.cpp:(.text._ZNK11skresources20FileResourceProvider4loadEPKcS2_+0x4c): undefined reference to `SkData::MakeFromFileName(char const*)'
[build] /home/john/Desktop/SkottieWrapper/third_party/skia/out/Skottie/libskottie.a(libskresources.SkResources.o): In function `skresources::FileResourceProvider::loadImageAsset(char const*, char const*, char const*) const':
[build] SkResources.cpp:(.text._ZNK11skresources20FileResourceProvider14loadImageAssetEPKcS2_S2_+0x50): undefined reference to `SkData::MakeFromFileName(char const*)'
[build] SkResources.cpp:(.text._ZNK11skresources20FileResourceProvider14loadImageAssetEPKcS2_S2_+0x9d): undefined reference to `SkData::~SkData()'
[build] SkResources.cpp:(.text._ZNK11skresources20FileResourceProvider14loadImageAssetEPKcS2_S2_+0xa5): undefined reference to `SkData::operator delete(void*)'
[build] SkResources.cpp:(.text._ZNK11skresources20FileResourceProvider14loadImageAssetEPKcS2_S2_+0xdc): undefined reference to `SkData::~SkData()'
[build] SkResources.cpp:(.text._ZNK11skresources20FileResourceProvider14loadImageAssetEPKcS2_S2_+0xe4): undefined reference to `SkData::operator delete(void*)'
[build] /home/john/Desktop/SkottieWrapper/third_party/skia/out/Skottie/libskottie.a(libskresources.SkResources.o): In function `skresources::DataURIResourceProviderProxy::loadImageAsset(char const*, char const*, char const*) const':
[build] SkResources.cpp:(.text._ZNK11skresources28DataURIResourceProviderProxy14loadImageAssetEPKcS2_S2_+0x80): undefined reference to `SkData::~SkData()'
[build] SkResources.cpp:(.text._ZNK11skresources28DataURIResourceProviderProxy14loadImageAssetEPKcS2_S2_+0x88): undefined reference to `SkData::operator delete(void*)'
[build] SkResources.cpp:(.text._ZNK11skresources28DataURIResourceProviderProxy14loadImageAssetEPKcS2_S2_+0xa0): undefined reference to `SkData::~SkData()'
[build] SkResources.cpp:(.text._ZNK11skresources28DataURIResourceProviderProxy14loadImageAssetEPKcS2_S2_+0xa8): undefined reference to `SkData::operator delete(void*)'
[build] /home/john/Desktop/SkottieWrapper/third_party/skia/out/Skottie/libskottie.a(libskresources.SkResources.o): In function `skresources::decode_datauri(char const*, char const*)':
[build] SkResources.cpp:(.text._ZN11skresourcesL14decode_datauriEPKcS1_+0x7b): undefined reference to `SkBase64::Decode(void const*, unsigned long, void*, unsigned long*)'
[build] SkResources.cpp:(.text._ZN11skresourcesL14decode_datauriEPKcS1_+0x8e): undefined reference to `SkData::MakeUninitialized(unsigned long)'
[build] SkResources.cpp:(.text._ZN11skresourcesL14decode_datauriEPKcS1_+0xa7): undefined reference to `SkBase64::Decode(void const*, unsigned long, void*, unsigned long*)'
[build] SkResources.cpp:(.text._ZN11skresourcesL14decode_datauriEPKcS1_+0xd2): undefined reference to `SkData::~SkData()'
[build] SkResources.cpp:(.text._ZN11skresourcesL14decode_datauriEPKcS1_+0xda): undefined reference to `SkData::operator delete(void*)'
[build] /home/john/Desktop/SkottieWrapper/third_party/skia/out/Skottie/libskottie.a(libskresources.SkResources.o): In function `skresources::DataURIResourceProviderProxy::loadTypeface(char const*, char const*) const':
[build] SkResources.cpp:(.text._ZNK11skresources28DataURIResourceProviderProxy12loadTypefaceEPKcS2_+0x4e): undefined reference to `SkTypeface::MakeFromData(sk_sp<SkData>, int)'
[build] SkResources.cpp:(.text._ZNK11skresources28DataURIResourceProviderProxy12loadTypefaceEPKcS2_+0x66): undefined reference to `SkData::~SkData()'
[build] SkResources.cpp:(.text._ZNK11skresources28DataURIResourceProviderProxy12loadTypefaceEPKcS2_+0x6e): undefined reference to `SkData::operator delete(void*)'
[build] SkResources.cpp:(.text._ZNK11skresources28DataURIResourceProviderProxy12loadTypefaceEPKcS2_+0x86): undefined reference to `SkData::~SkData()'
[build] SkResources.cpp:(.text._ZNK11skresources28DataURIResourceProviderProxy12loadTypefaceEPKcS2_+0x8e): undefined reference to `SkData::operator delete(void*)'
[build] /home/john/Desktop/SkottieWrapper/third_party/skia/out/Skottie/libskottie.a(libskresources.SkResources.o): In function `skresources::MultiFrameImageAsset::~MultiFrameImageAsset()':
[build] SkResources.cpp:(.text._ZN11skresources20MultiFrameImageAssetD2Ev[_ZN11skresources20MultiFrameImageAssetD2Ev]+0x34): undefined reference to `SkAnimCodecPlayer::~SkAnimCodecPlayer()'
[build] /home/john/Desktop/SkottieWrapper/third_party/skia/out/Skottie/libskottie.a(libskresources.SkResources.o): In function `skresources::MultiFrameImageAsset::~MultiFrameImageAsset()':
[build] SkResources.cpp:(.text._ZN11skresources20MultiFrameImageAssetD0Ev[_ZN11skresources20MultiFrameImageAssetD0Ev]+0x34): undefined reference to `SkAnimCodecPlayer::~SkAnimCodecPlayer()'
[build] /home/john/Desktop/SkottieWrapper/third_party/skia/out/Skottie/libpathkit.a(libpathkit.SkOpts.o): In function `sse2::blit_mask_d32_a8(unsigned int*, unsigned long, unsigned char const*, unsigned long, unsigned int, int, int)':
[build] SkOpts.cpp:(.text._ZN4sse216blit_mask_d32_a8EPjmPKhmjii[_ZN4sse216blit_mask_d32_a8EPjmPKhmjii]+0x2d0): undefined reference to `SkPreMultiplyColor(unsigned int)'
[build] /home/john/Desktop/SkottieWrapper/third_party/skia/out/Skottie/libpathkit.a(libpathkit.SkOpts.o): In function `SkOpts::Init()':
[build] SkOpts.cpp:(.text._ZN6SkOpts4InitEv+0x24): undefined reference to `SkCpu::gCachedFeatures'
[build] SkOpts.cpp:(.text._ZN6SkOpts4InitEv+0x67): undefined reference to `SkOpts::Init_ssse3()'
[build] SkOpts.cpp:(.text._ZN6SkOpts4InitEv+0x72): undefined reference to `SkOpts::Init_sse42()'
[build] SkOpts.cpp:(.text._ZN6SkOpts4InitEv+0x7d): undefined reference to `SkOpts::Init_avx()'
[build] SkOpts.cpp:(.text._ZN6SkOpts4InitEv+0x94): undefined reference to `SkOpts::Init_hsw()'
[build] SkOpts.cpp:(.text._ZN6SkOpts4InitEv+0xab): undefined reference to `SkOpts::Init_skx()'
[build] SkOpts.cpp:(.text._ZN6SkOpts4InitEv+0xb9): undefined reference to `SkOpts::Init_erms()'
[build] /home/john/Desktop/SkottieWrapper/third_party/skia/out/Skottie/libpathkit.a(libpathkit.SkPath.o): In function `SkPath::contains(float, float) const':
[build] SkPath.cpp:(.text._ZNK6SkPath8containsEff+0x627): undefined reference to `SkCubicClipper::ChopMonoAtY(SkPoint const*, float, float*)'
[build] SkPath.cpp:(.text._ZNK6SkPath8containsEff+0x10d6): undefined reference to `SkCubicClipper::ChopMonoAtY(SkPoint const*, float, float*)'
[build] /home/john/Desktop/SkottieWrapper/third_party/skia/out/Skottie/libpathkit.a(libpathkit.SkPathRef.o): In function `SkPathRef::writeToBuffer(SkWBuffer*) const':
[build] SkPathRef.cpp:(.text._ZNK9SkPathRef13writeToBufferEP9SkWBuffer+0x4f): undefined reference to `SkWBuffer::writeNoSizeCheck(void const*, unsigned long)'
[build] SkPathRef.cpp:(.text._ZNK9SkPathRef13writeToBufferEP9SkWBuffer+0x69): undefined reference to `SkWBuffer::writeNoSizeCheck(void const*, unsigned long)'
[build] SkPathRef.cpp:(.text._ZNK9SkPathRef13writeToBufferEP9SkWBuffer+0x82): undefined reference to `SkWBuffer::writeNoSizeCheck(void const*, unsigned long)'
[build] SkPathRef.cpp:(.text._ZNK9SkPathRef13writeToBufferEP9SkWBuffer+0x9b): undefined reference to `SkWBuffer::writeNoSizeCheck(void const*, unsigned long)'
[build] SkPathRef.cpp:(.text._ZNK9SkPathRef13writeToBufferEP9SkWBuffer+0xb4): undefined reference to `SkWBuffer::writeNoSizeCheck(void const*, unsigned long)'
[build] /home/john/Desktop/SkottieWrapper/third_party/skia/out/Skottie/libpathkit.a(libpathkit.SkPathRef.o):SkPathRef.cpp:(.text._ZNK9SkPathRef13writeToBufferEP9SkWBuffer+0xc9): more undefined references to `SkWBuffer::writeNoSizeCheck(void const*, unsigned long)' follow
[build] /home/john/Desktop/SkottieWrapper/third_party/skia/out/Skottie/libpathkit.a(libpathkit.SkRRect.o): In function `SkRRectPriv::ReadFromBuffer(SkRBuffer*, SkRRect*)':
[build] SkRRect.cpp:(.text._ZN11SkRRectPriv14ReadFromBufferEP9SkRBufferP7SkRRect+0x3b): undefined reference to `SkRBuffer::read(void*, unsigned long)'
[build] /home/john/Desktop/SkottieWrapper/third_party/skia/out/Skottie/libpathkit.a(libpathkit.SkSemaphore.o): In function `SkSemaphore::~SkSemaphore()':
[build] SkSemaphore.cpp:(.text._ZN11SkSemaphoreD2Ev+0xe): undefined reference to `sem_destroy'
[build] /home/john/Desktop/SkottieWrapper/third_party/skia/out/Skottie/libpathkit.a(libpathkit.SkSemaphore.o): In function `SkSemaphore::osSignal(int)':
[build] SkSemaphore.cpp:(.text._ZN11SkSemaphore8osSignalEi+0x32): undefined reference to `sem_init'
[build] SkSemaphore.cpp:(.text._ZN11SkSemaphore8osSignalEi+0x64): undefined reference to `sem_post'
[build] /home/john/Desktop/SkottieWrapper/third_party/skia/out/Skottie/libpathkit.a(libpathkit.SkSemaphore.o): In function `SkSemaphore::osWait()':
[build] SkSemaphore.cpp:(.text._ZN11SkSemaphore6osWaitEv+0x2e): undefined reference to `sem_init'
[build] SkSemaphore.cpp:(.text._ZN11SkSemaphore6osWaitEv+0x54): undefined reference to `sem_wait'
[build] collect2: error: ld returned 1 exit status
[build] gmake[2]: *** [CMakeFiles/testskia.dir/build.make:103: testskia] Error 1
[build] gmake[1]: *** [CMakeFiles/Makefile2:95: CMakeFiles/testskia.dir/all] Error 2
[build] gmake: *** [Makefile:103: all] Error 2
[build] Build finished with exit code 2