Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

enable shared/static builds #906

Merged

Conversation

christian-rauch
Copy link
Collaborator

@christian-rauch christian-rauch commented Feb 4, 2024

This adds build configurations for testing shared and static builds (BUILD_SHARED_LIBS ON or OFF) for all targets in the CI.

The most notable change here is that I had to remove the export header generation via GenerateExportHeader and export all symbols on Windows via CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS. Without this, it is not possible to build a shared Pangolin library as a lot of symbols cannot be resolved with the MSVC compiler.

I am not familiar with development with the MSVC compiler on windows. But I guess the proper solution would be to properly export those symbols by adding PANGOLIN_EXPORT to them.

LNK2019 errors:

pixel_format.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl pangolin::PixelFormat::PixelFormat(struct pangolin::PixelFormat &&)" (__imp_??0PixelFormat@pangolin@@QEAA@$$QEAU01@@Z) referenced in function "public: static void __cdecl std::_Default_allocator_traits<class std::allocator<struct pangolin::PixelFormat> >::construct<struct pangolin::PixelFormat,struct pangolin::PixelFormat>(class std::allocator<struct pangolin::PixelFormat> &,struct pangolin::PixelFormat * const,struct pangolin::PixelFormat &&)" (??$construct@UPixelFormat@pangolin@@U12@@?$_Default_allocator_traits@V?$allocator@UPixelFormat@pangolin@@@std@@@std@@SAXAEAV?$allocator@UPixelFormat@pangolin@@@1@QEAUPixelFormat@pangolin@@$$QEAU34@@Z)
packet.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class pangolin::PacketStream & __cdecl pangolin::Packet::Stream(void)" (__imp_?Stream@Packet@pangolin@@QEAAAEAVPacketStream@2@XZ) referenced in function "private: void __cdecl pangolin::Packet::ReadRemaining(void)" (?ReadRemaining@Packet@pangolin@@AEAAXXZ)
packetstream.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: int __cdecl std::basic_istream<char,struct std::char_traits<char> >::get(void)" (__imp_?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ) referenced in function "public: char __cdecl pangolin::PacketStream::get(void)" (?get@PacketStream@pangolin@@QEAADXZ)
packetstream.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class std::basic_istream<char,struct std::char_traits<char> > & __cdecl std::basic_istream<char,struct std::char_traits<char> >::ignore(__int64,int)" (__imp_?ignore@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@Z) referenced in function "public: unsigned __int64 __cdecl pangolin::PacketStream::skip(unsigned __int64)" (?skip@PacketStream@pangolin@@QEAA_K_K@Z)
packetstream.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __int64 __cdecl std::basic_istream<char,struct std::char_traits<char> >::gcount(void)const " (__imp_?gcount@?$basic_istream@DU?$char_traits@D@std@@@std@@QEBA_JXZ) referenced in function "public: unsigned __int64 __cdecl pangolin::PacketStream::read(char *,unsigned __int64)" (?read@PacketStream@pangolin@@QEAA_KPEAD_K@Z)
packetstream.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class std::basic_istream<char,struct std::char_traits<char> > & __cdecl std::basic_istream<char,struct std::char_traits<char> >::seekg(class std::fpos<struct _Mbstatet>)" (__imp_?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@V?$fpos@U_Mbstatet@@@2@@Z) referenced in function "public: void __cdecl pangolin::PacketStream::seekg(class std::fpos<struct _Mbstatet>)" (?seekg@PacketStream@pangolin@@QEAAXV?$fpos@U_Mbstatet@@@std@@@Z)
packetstream.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: bool __cdecl pangolin::PacketStream::seekable(void)const " (__imp_?seekable@PacketStream@pangolin@@QEBA_NXZ) referenced in function "public: void __cdecl pangolin::PacketStream::seekg(class std::fpos<struct _Mbstatet>)" (?seekg@PacketStream@pangolin@@QEAAXV?$fpos@U_Mbstatet@@@std@@@Z)
packetstream.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) private: void __cdecl pangolin::PacketStream::cclear(void)" (__imp_?cclear@PacketStream@pangolin@@AEAAXXZ) referenced in function "public: void __cdecl pangolin::PacketStream::seekg(class std::fpos<struct _Mbstatet>)" (?seekg@PacketStream@pangolin@@QEAAXV?$fpos@U_Mbstatet@@@std@@@Z)
packetstream_reader.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl pangolin::PacketStream::PacketStream(void)" (__imp_??0PacketStream@pangolin@@QEAA@XZ) referenced in function "public: __cdecl pangolin::PacketStreamReader::PacketStreamReader(void)" (??0PacketStreamReader@pangolin@@QEAA@XZ)
packetstream_reader.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __cdecl pangolin::PacketStream::open(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (__imp_?open@PacketStream@pangolin@@QEAAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) referenced in function "public: void __cdecl pangolin::PacketStreamReader::Open(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?Open@PacketStreamReader@pangolin@@QEAAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
packetstream_reader.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __cdecl pangolin::PacketStream::close(void)" (__imp_?close@PacketStream@pangolin@@QEAAXXZ) referenced in function "public: void __cdecl pangolin::PacketStreamReader::Close(void)" (?Close@PacketStreamReader@pangolin@@QEAAXXZ)
packetstream_reader.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __cdecl pangolin::PacketStream::`vbase destructor'(void)" (__imp_??_DPacketStream@pangolin@@QEAAXXZ) referenced in function "public: __cdecl pangolin::PacketStreamReader::~PacketStreamReader(void)" (??1PacketStreamReader@pangolin@@QEAA@XZ)
packetstream_reader.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl pangolin::PacketStreamSource::PacketStreamSource(void)" (__imp_??0PacketStreamSource@pangolin@@QEAA@XZ) referenced in function "public: static void __cdecl std::_Default_allocator_traits<class std::allocator<struct pangolin::PacketStreamSource> >::construct<struct pangolin::PacketStreamSource>(class std::allocator<struct pangolin::PacketStreamSource> &,struct pangolin::PacketStreamSource * const)" (??$construct@UPacketStreamSource@pangolin@@$$V@?$_Default_allocator_traits@V?$allocator@UPacketStreamSource@pangolin@@@std@@@std@@SAXAEAV?$allocator@UPacketStreamSource@pangolin@@@1@QEAUPacketStreamSource@pangolin@@@Z)
packetstream_reader.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl pangolin::PacketStreamSource::~PacketStreamSource(void)" (__imp_??1PacketStreamSource@pangolin@@QEAA@XZ) referenced in function "public: void * __cdecl pangolin::PacketStreamSource::`scalar deleting destructor'(unsigned int)" (??_GPacketStreamSource@pangolin@@QEAAPEAXI@Z)
packetstream_reader.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl pangolin::PacketStreamSource::PacketStreamSource(struct pangolin::PacketStreamSource const &)" (__imp_??0PacketStreamSource@pangolin@@QEAA@AEBU01@@Z) referenced in function "public: static void __cdecl std::_Default_allocator_traits<class std::allocator<struct pangolin::PacketStreamSource> >::construct<struct pangolin::PacketStreamSource,struct pangolin::PacketStreamSource &>(class std::allocator<struct pangolin::PacketStreamSource> &,struct pangolin::PacketStreamSource * const,struct pangolin::PacketStreamSource &)" (??$construct@UPacketStreamSource@pangolin@@AEAU12@@?$_Default_allocator_traits@V?$allocator@UPacketStreamSource@pangolin@@@std@@@std@@SAXAEAV?$allocator@UPacketStreamSource@pangolin@@@1@QEAUPacketStreamSource@pangolin@@AEAU34@@Z)
packetstream_reader.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) private: void __cdecl pangolin::PacketStreamReader::ReSync(void)" (__imp_?ReSync@PacketStreamReader@pangolin@@AEAAXXZ) referenced in function "public: struct pangolin::Packet __cdecl pangolin::PacketStreamReader::NextFrame(void)" (?NextFrame@PacketStreamReader@pangolin@@QEAA?AUPacket@2@XZ)
packetstream_writer.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl pangolin::PacketStreamSource::PacketStreamSource(struct pangolin::PacketStreamSource &&)" (__imp_??0PacketStreamSource@pangolin@@QEAA@$$QEAU01@@Z) referenced in function "public: static void __cdecl std::_Default_allocator_traits<class std::allocator<struct pangolin::PacketStreamSource> >::construct<struct pangolin::PacketStreamSource,struct pangolin::PacketStreamSource>(class std::allocator<struct pangolin::PacketStreamSource> &,struct pangolin::PacketStreamSource * const,struct pangolin::PacketStreamSource &&)" (??$construct@UPacketStreamSource@pangolin@@U12@@?$_Default_allocator_traits@V?$allocator@UPacketStreamSource@pangolin@@@std@@@std@@SAXAEAV?$allocator@UPacketStreamSource@pangolin@@@1@QEAUPacketStreamSource@pangolin@@$$QEAU34@@Z)
playback_session.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class std::basic_istream<char,struct std::char_traits<char> > & __cdecl std::basic_istream<char,struct std::char_traits<char> >::operator>>(class std::ios_base & (__cdecl*)(class std::ios_base &))" (__imp_??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z) referenced in function "public: static bool __cdecl pangolin::Convert<bool,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,void>::Do(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?Do@?$Convert@_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@X@pangolin@@SA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
playback_session.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class std::basic_istream<char,struct std::char_traits<char> > & __cdecl std::basic_istream<char,struct std::char_traits<char> >::operator>>(bool &)" (__imp_??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_N@Z) referenced in function "public: static bool __cdecl pangolin::Convert<bool,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,void>::Do(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?Do@?$Convert@_NV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@X@pangolin@@SA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
playback_session.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl pangolin::SyncTime::SyncTime(class std::chrono::duration<__int64,struct std::ratio<1,1000000000> >)" (__imp_??0SyncTime@pangolin@@QEAA@V?$duration@_JU?$ratio@$00$0DLJKMKAA@@std@@@chrono@std@@@Z) referenced in function "public: __cdecl pangolin::PlaybackSession::PlaybackSession(void)" (??0PlaybackSession@pangolin@@QEAA@XZ)
playback_session.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl pangolin::SyncTime::~SyncTime(void)" (__imp_??1SyncTime@pangolin@@QEAA@XZ) referenced in function "public: __cdecl pangolin::PlaybackSession::~PlaybackSession(void)" (??1PlaybackSession@pangolin@@QEAA@XZ)
varstate.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class std::shared_ptr<class pangolin::VarValueGeneric> __cdecl pangolin::VarState::GetByName(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (__imp_?GetByName@VarState@pangolin@@QEAA?AV?$shared_ptr@VVarValueGeneric@pangolin@@@std@@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@4@@Z) referenced in function "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl <lambda_93281d1f9c0c6f9f4892ab4da5733e20>::operator()(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)const " (??R<lambda_93281d1f9c0c6f9f4892ab4da5733e20>@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBV12@@Z)

LNK2001 errors:

image_io_bmp.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl pangolin::PixelFormat::~PixelFormat(void)" (__imp_??1PixelFormat@pangolin@@QEAA@XZ)
image_io_zstd.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl pangolin::PixelFormat::~PixelFormat(void)" (__imp_??1PixelFormat@pangolin@@QEAA@XZ)
image_io_tiff.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl pangolin::PixelFormat::~PixelFormat(void)" (__imp_??1PixelFormat@pangolin@@QEAA@XZ)
image_io_png.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl pangolin::PixelFormat::~PixelFormat(void)" (__imp_??1PixelFormat@pangolin@@QEAA@XZ)
image_io_ppm.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl pangolin::PixelFormat::~PixelFormat(void)" (__imp_??1PixelFormat@pangolin@@QEAA@XZ)
image_io_raw.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl pangolin::PixelFormat::~PixelFormat(void)" (__imp_??1PixelFormat@pangolin@@QEAA@XZ)
image_io_tga.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl pangolin::PixelFormat::~PixelFormat(void)" (__imp_??1PixelFormat@pangolin@@QEAA@XZ)
pixel_format.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl pangolin::PixelFormat::~PixelFormat(void)" (__imp_??1PixelFormat@pangolin@@QEAA@XZ)
image_io_jpg.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl pangolin::PixelFormat::~PixelFormat(void)" (__imp_??1PixelFormat@pangolin@@QEAA@XZ)
image_io_lz4.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl pangolin::PixelFormat::~PixelFormat(void)" (__imp_??1PixelFormat@pangolin@@QEAA@XZ)
image_io_packed12bit.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl pangolin::PixelFormat::~PixelFormat(void)" (__imp_??1PixelFormat@pangolin@@QEAA@XZ)
image_io_zstd.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl pangolin::PixelFormat::PixelFormat(struct pangolin::PixelFormat const &)" (__imp_??0PixelFormat@pangolin@@QEAA@AEBU01@@Z)
image_io_tiff.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl pangolin::PixelFormat::PixelFormat(struct pangolin::PixelFormat const &)" (__imp_??0PixelFormat@pangolin@@QEAA@AEBU01@@Z)
image_io_ppm.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl pangolin::PixelFormat::PixelFormat(struct pangolin::PixelFormat const &)" (__imp_??0PixelFormat@pangolin@@QEAA@AEBU01@@Z)
image_io_raw.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl pangolin::PixelFormat::PixelFormat(struct pangolin::PixelFormat const &)" (__imp_??0PixelFormat@pangolin@@QEAA@AEBU01@@Z)
image_io_tga.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl pangolin::PixelFormat::PixelFormat(struct pangolin::PixelFormat const &)" (__imp_??0PixelFormat@pangolin@@QEAA@AEBU01@@Z)
image_io_bmp.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl pangolin::PixelFormat::PixelFormat(struct pangolin::PixelFormat const &)" (__imp_??0PixelFormat@pangolin@@QEAA@AEBU01@@Z)
pixel_format.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl pangolin::PixelFormat::PixelFormat(struct pangolin::PixelFormat const &)" (__imp_??0PixelFormat@pangolin@@QEAA@AEBU01@@Z)
image_io_lz4.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl pangolin::PixelFormat::PixelFormat(struct pangolin::PixelFormat const &)" (__imp_??0PixelFormat@pangolin@@QEAA@AEBU01@@Z)
image_io_packed12bit.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl pangolin::PixelFormat::PixelFormat(struct pangolin::PixelFormat const &)" (__imp_??0PixelFormat@pangolin@@QEAA@AEBU01@@Z)
image_io_png.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl pangolin::PixelFormat::PixelFormat(struct pangolin::PixelFormat const &)" (__imp_??0PixelFormat@pangolin@@QEAA@AEBU01@@Z)
image_io_zstd.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl pangolin::PixelFormat::PixelFormat(void)" (__imp_??0PixelFormat@pangolin@@QEAA@XZ)
image_io_tiff.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl pangolin::PixelFormat::PixelFormat(void)" (__imp_??0PixelFormat@pangolin@@QEAA@XZ)
image_io_ppm.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl pangolin::PixelFormat::PixelFormat(void)" (__imp_??0PixelFormat@pangolin@@QEAA@XZ)
image_io_raw.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl pangolin::PixelFormat::PixelFormat(void)" (__imp_??0PixelFormat@pangolin@@QEAA@XZ)
image_io_tga.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl pangolin::PixelFormat::PixelFormat(void)" (__imp_??0PixelFormat@pangolin@@QEAA@XZ)
image_io_bmp.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl pangolin::PixelFormat::PixelFormat(void)" (__imp_??0PixelFormat@pangolin@@QEAA@XZ)
image_io_jpg.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl pangolin::PixelFormat::PixelFormat(void)" (__imp_??0PixelFormat@pangolin@@QEAA@XZ)
image_io_lz4.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl pangolin::PixelFormat::PixelFormat(void)" (__imp_??0PixelFormat@pangolin@@QEAA@XZ)
image_io_packed12bit.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl pangolin::PixelFormat::PixelFormat(void)" (__imp_??0PixelFormat@pangolin@@QEAA@XZ)
image_io_png.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl pangolin::PixelFormat::PixelFormat(void)" (__imp_??0PixelFormat@pangolin@@QEAA@XZ)
image_io_zstd.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: struct pangolin::PixelFormat & __cdecl pangolin::PixelFormat::operator=(struct pangolin::PixelFormat const &)" (__imp_??4PixelFormat@pangolin@@QEAAAEAU01@AEBU01@@Z)
image_io_tiff.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: struct pangolin::PixelFormat & __cdecl pangolin::PixelFormat::operator=(struct pangolin::PixelFormat const &)" (__imp_??4PixelFormat@pangolin@@QEAAAEAU01@AEBU01@@Z)
image_io_ppm.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: struct pangolin::PixelFormat & __cdecl pangolin::PixelFormat::operator=(struct pangolin::PixelFormat const &)" (__imp_??4PixelFormat@pangolin@@QEAAAEAU01@AEBU01@@Z)
image_io_raw.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: struct pangolin::PixelFormat & __cdecl pangolin::PixelFormat::operator=(struct pangolin::PixelFormat const &)" (__imp_??4PixelFormat@pangolin@@QEAAAEAU01@AEBU01@@Z)
image_io_tga.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: struct pangolin::PixelFormat & __cdecl pangolin::PixelFormat::operator=(struct pangolin::PixelFormat const &)" (__imp_??4PixelFormat@pangolin@@QEAAAEAU01@AEBU01@@Z)
image_io_bmp.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: struct pangolin::PixelFormat & __cdecl pangolin::PixelFormat::operator=(struct pangolin::PixelFormat const &)" (__imp_??4PixelFormat@pangolin@@QEAAAEAU01@AEBU01@@Z)
image_io_jpg.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: struct pangolin::PixelFormat & __cdecl pangolin::PixelFormat::operator=(struct pangolin::PixelFormat const &)" (__imp_??4PixelFormat@pangolin@@QEAAAEAU01@AEBU01@@Z)
image_io_lz4.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: struct pangolin::PixelFormat & __cdecl pangolin::PixelFormat::operator=(struct pangolin::PixelFormat const &)" (__imp_??4PixelFormat@pangolin@@QEAAAEAU01@AEBU01@@Z)
image_io_packed12bit.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: struct pangolin::PixelFormat & __cdecl pangolin::PixelFormat::operator=(struct pangolin::PixelFormat const &)" (__imp_??4PixelFormat@pangolin@@QEAAAEAU01@AEBU01@@Z)
image_io_png.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: struct pangolin::PixelFormat & __cdecl pangolin::PixelFormat::operator=(struct pangolin::PixelFormat const &)" (__imp_??4PixelFormat@pangolin@@QEAAAEAU01@AEBU01@@Z)
packetstream_reader.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: bool __cdecl pangolin::PacketStream::seekable(void)const " (__imp_?seekable@PacketStream@pangolin@@QEBA_NXZ)
packetstream_writer.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl pangolin::PacketStreamSource::~PacketStreamSource(void)" (__imp_??1PacketStreamSource@pangolin@@QEAA@XZ)
packetstream_writer.cpp.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl pangolin::PacketStreamSource::PacketStreamSource(struct pangolin::PacketStreamSource const &)" (__imp_??0PacketStreamSource@pangolin@@QEAA@AEBU01@@Z)

Also Fixes #760.

Copy link
Owner

@stevenlovegrove stevenlovegrove left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good! I don't think I have a problem with exporting all symbols on Windows if that simplifies things and doesn't introduce any issues.

The two funny things I'm doing which might get effected with static / shared builds is the font stuff which it looks like you've tested, and also registering video drivers (eg. https://github.com/stevenlovegrove/Pangolin/blob/master/components/pango_video/CMakeLists.txt#L31) so you could perhaps do a quick check by running VideoViewer test://

thanks!

@christian-rauch
Copy link
Collaborator Author

Alright. VideoViewer test:// works as before. So I am going ahead and will merge this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Build fails: error: use of undeclared identifier 'S_IRUSR'
3 participants