0

I want to compile LASlib to dll. This library is stored in github. Normally, LASlib are compiled to static library. I made instruction for library compilation in Visual Studio 2015 and static library was compiled successful. But this way isn't good for me, because I want to use LASlib in developing solution, which it will be a dll file. I want compile LASlib to Windows dll.

I tried a lot of ideas, but no ideas didn't work well. I use Visual Studio 2015 and I choose configuration type as dll file. In addition, linked LASzip was added to Linker. But this steps don't make successful compilation. I put below my list error. What should I do to compile LASlib dll?

Severity    Code    Description Project File    Line    Suppression State
Error   LNK2001 unresolved external symbol "public: bool __cdecl LASindex::seek_next(class LASreader *)" (?seek_next@LASindex@@QEAA_NPEAVLASreader@@@Z) Laslib  C:\Users\Vmdev\Documents\Laslib\lasreader.obj   1   
Error   LNK2001 unresolved external symbol "public: bool __cdecl LASindex::intersect_circle(double,double,double)" (?intersect_circle@LASindex@@QEAA_NNNN@Z)    Laslib  C:\Users\Vmdev\Documents\Laslib\lasreader.obj   1   
Error   LNK2001 unresolved external symbol "public: bool __cdecl LASindex::intersect_tile(float,float,float)" (?intersect_tile@LASindex@@QEAA_NMMM@Z)   Laslib  C:\Users\Vmdev\Documents\Laslib\lasreader.obj   1   
Error   LNK2001 unresolved external symbol "public: bool __cdecl LASindex::intersect_rectangle(double,double,double,double)" (?intersect_rectangle@LASindex@@QEAA_NNNNN@Z)  Laslib  C:\Users\Vmdev\Documents\Laslib\lasreader.obj   1   
Error   LNK2001 unresolved external symbol "public: bool __cdecl LASindex::read(char const *)" (?read@LASindex@@QEAA_NPEBD@Z)   Laslib  C:\Users\Vmdev\Documents\Laslib\lasreader.obj   1   
Error   LNK2001 unresolved external symbol "public: __cdecl LASindex::~LASindex(void)" (??1LASindex@@QEAA@XZ)   Laslib  C:\Users\Vmdev\Documents\Laslib\lasreader.obj   1   
Error   LNK2001 unresolved external symbol "public: __cdecl LASindex::LASindex(void)" (??0LASindex@@QEAA@XZ)    Laslib  C:\Users\Vmdev\Documents\Laslib\lasreader.obj   1   
Error   LNK2001 unresolved external symbol "public: __cdecl LASzip::~LASzip(void)" (??1LASzip@@QEAA@XZ) Laslib  C:\Users\Vmdev\Documents\Laslib\lasreader.obj   1   
Error   LNK2001 unresolved external symbol "public: __cdecl LASzip::LASzip(void)" (??0LASzip@@QEAA@XZ)  Laslib  C:\Users\Vmdev\Documents\Laslib\lasreaderbuffered.obj   1   
Error   LNK2001 unresolved external symbol "public: bool __cdecl LASzip::setup(unsigned short *,class LASitem * *,unsigned char,unsigned short,unsigned short)" (?setup@LASzip@@QEAA_NPEAGPEAPEAVLASitem@@EGG@Z)    Laslib  C:\Users\Vmdev\Documents\Laslib\lasreaderbuffered.obj   1   
Error   LNK2001 unresolved external symbol "public: bool __cdecl LASindex::read(class ByteStreamIn *)" (?read@LASindex@@QEAA_NPEAVByteStreamIn@@@Z) Laslib  C:\Users\Vmdev\Documents\Laslib\lasreader_las.obj   1   
Error   LNK2001 unresolved external symbol "public: bool __cdecl LASreadPoint::done(void)" (?done@LASreadPoint@@QEAA_NXZ)   Laslib  C:\Users\Vmdev\Documents\Laslib\lasreader_las.obj   1   
Error   LNK2001 unresolved external symbol "public: bool __cdecl LASreadPoint::check_end(void)" (?check_end@LASreadPoint@@QEAA_NXZ) Laslib  C:\Users\Vmdev\Documents\Laslib\lasreader_las.obj   1   
Error   LNK2001 unresolved external symbol "public: bool __cdecl LASreadPoint::read(unsigned char * const *)" (?read@LASreadPoint@@QEAA_NPEBQEAE@Z) Laslib  C:\Users\Vmdev\Documents\Laslib\lasreader_las.obj   1   
Error   LNK2001 unresolved external symbol "public: bool __cdecl LASreadPoint::seek(unsigned int,unsigned int)" (?seek@LASreadPoint@@QEAA_NII@Z)    Laslib  C:\Users\Vmdev\Documents\Laslib\lasreader_las.obj   1   
Error   LNK2001 unresolved external symbol "public: bool __cdecl LASreadPoint::init(class ByteStreamIn *)" (?init@LASreadPoint@@QEAA_NPEAVByteStreamIn@@@Z) Laslib  C:\Users\Vmdev\Documents\Laslib\lasreader_las.obj   1   
Error   LNK2001 unresolved external symbol "public: bool __cdecl LASreadPoint::setup(unsigned int,class LASitem const *,class LASzip const *)" (?setup@LASreadPoint@@QEAA_NIPEBVLASitem@@PEBVLASzip@@@Z)    Laslib  C:\Users\Vmdev\Documents\Laslib\lasreader_las.obj   1   
Error   LNK2001 unresolved external symbol "public: __cdecl LASreadPoint::~LASreadPoint(void)" (??1LASreadPoint@@QEAA@XZ)   Laslib  C:\Users\Vmdev\Documents\Laslib\lasreader_las.obj   1   
Error   LNK2001 unresolved external symbol "public: __cdecl LASreadPoint::LASreadPoint(void)" (??0LASreadPoint@@QEAA@XZ)    Laslib  C:\Users\Vmdev\Documents\Laslib\lasreader_las.obj   1   
Error   LNK2001 unresolved external symbol "public: char const * __cdecl LASzip::get_error(void)const " (?get_error@LASzip@@QEBAPEBDXZ) Laslib  C:\Users\Vmdev\Documents\Laslib\lasreader_las.obj   1   
Error   LNK2001 unresolved external symbol "public: bool __cdecl LASzip::check(void)" (?check@LASzip@@QEAA_NXZ) Laslib  C:\Users\Vmdev\Documents\Laslib\lasreader_las.obj   1   
Error   LNK2001 unresolved external symbol "public: void __cdecl ArithmeticDecoder::done(void)" (?done@ArithmeticDecoder@@QEAAXXZ)  Laslib  C:\Users\Vmdev\Documents\Laslib\laswaveform13reader.obj 1   
Error   LNK2001 unresolved external symbol "public: bool __cdecl ArithmeticDecoder::init(class ByteStreamIn *,bool)" (?init@ArithmeticDecoder@@QEAA_NPEAVByteStreamIn@@_N@Z)    Laslib  C:\Users\Vmdev\Documents\Laslib\laswaveform13reader.obj 1   
Error   LNK2001 unresolved external symbol "public: __cdecl ArithmeticDecoder::~ArithmeticDecoder(void)" (??1ArithmeticDecoder@@QEAA@XZ)    Laslib  C:\Users\Vmdev\Documents\Laslib\laswaveform13reader.obj 1   
Error   LNK2001 unresolved external symbol "public: __cdecl ArithmeticDecoder::ArithmeticDecoder(void)" (??0ArithmeticDecoder@@QEAA@XZ) Laslib  C:\Users\Vmdev\Documents\Laslib\laswaveform13reader.obj 1   
Error   LNK2001 unresolved external symbol "public: int __cdecl IntegerCompressor::decompress(int,unsigned int)" (?decompress@IntegerCompressor@@QEAAHHI@Z) Laslib  C:\Users\Vmdev\Documents\Laslib\laswaveform13reader.obj 1   
Error   LNK2001 unresolved external symbol "public: void __cdecl IntegerCompressor::initDecompressor(void)" (?initDecompressor@IntegerCompressor@@QEAAXXZ)  Laslib  C:\Users\Vmdev\Documents\Laslib\laswaveform13reader.obj 1   
Error   LNK2001 unresolved external symbol "public: __cdecl IntegerCompressor::~IntegerCompressor(void)" (??1IntegerCompressor@@QEAA@XZ)    Laslib  C:\Users\Vmdev\Documents\Laslib\laswaveform13reader.obj 1   
Error   LNK2001 unresolved external symbol "public: __cdecl IntegerCompressor::IntegerCompressor(class ArithmeticDecoder *,unsigned int,unsigned int,unsigned int,unsigned int)" (??0IntegerCompressor@@QEAA@PEAVArithmeticDecoder@@IIII@Z) Laslib  C:\Users\Vmdev\Documents\Laslib\laswaveform13reader.obj 1   
Error   LNK2001 unresolved external symbol "public: void __cdecl IntegerCompressor::compress(int,int,unsigned int)" (?compress@IntegerCompressor@@QEAAXHHI@Z)   Laslib  C:\Users\Vmdev\Documents\Laslib\laswaveform13writer.obj 1   
Error   LNK2001 unresolved external symbol "public: void __cdecl IntegerCompressor::initCompressor(void)" (?initCompressor@IntegerCompressor@@QEAAXXZ)  Laslib  C:\Users\Vmdev\Documents\Laslib\laswaveform13writer.obj 1   
Error   LNK2001 unresolved external symbol "public: __cdecl IntegerCompressor::IntegerCompressor(class ArithmeticEncoder *,unsigned int,unsigned int,unsigned int,unsigned int)" (??0IntegerCompressor@@QEAA@PEAVArithmeticEncoder@@IIII@Z) Laslib  C:\Users\Vmdev\Documents\Laslib\laswaveform13writer.obj 1   
Error   LNK2001 unresolved external symbol "public: void __cdecl ArithmeticEncoder::done(void)" (?done@ArithmeticEncoder@@QEAAXXZ)  Laslib  C:\Users\Vmdev\Documents\Laslib\laswaveform13writer.obj 1   
Error   LNK2001 unresolved external symbol "public: bool __cdecl ArithmeticEncoder::init(class ByteStreamOut *)" (?init@ArithmeticEncoder@@QEAA_NPEAVByteStreamOut@@@Z) Laslib  C:\Users\Vmdev\Documents\Laslib\laswaveform13writer.obj 1   
Error   LNK2001 unresolved external symbol "public: __cdecl ArithmeticEncoder::~ArithmeticEncoder(void)" (??1ArithmeticEncoder@@QEAA@XZ)    Laslib  C:\Users\Vmdev\Documents\Laslib\laswaveform13writer.obj 1   
Error   LNK2001 unresolved external symbol "public: __cdecl ArithmeticEncoder::ArithmeticEncoder(void)" (??0ArithmeticEncoder@@QEAA@XZ) Laslib  C:\Users\Vmdev\Documents\Laslib\laswaveform13writer.obj 1   
Error   LNK2001 unresolved external symbol "public: bool __cdecl LASwritePoint::done(void)" (?done@LASwritePoint@@QEAA_NXZ) Laslib  C:\Users\Vmdev\Documents\Laslib\laswriter_las.obj   1   
Error   LNK2001 unresolved external symbol "public: bool __cdecl LASwritePoint::chunk(void)" (?chunk@LASwritePoint@@QEAA_NXZ)   Laslib  C:\Users\Vmdev\Documents\Laslib\laswriter_las.obj   1   
Error   LNK2001 unresolved external symbol "public: bool __cdecl LASwritePoint::write(unsigned char const * const *)" (?write@LASwritePoint@@QEAA_NPEBQEBE@Z)   Laslib  C:\Users\Vmdev\Documents\Laslib\laswriter_las.obj   1   
Error   LNK2001 unresolved external symbol "public: bool __cdecl LASwritePoint::init(class ByteStreamOut *)" (?init@LASwritePoint@@QEAA_NPEAVByteStreamOut@@@Z) Laslib  C:\Users\Vmdev\Documents\Laslib\laswriter_las.obj   1   
Error   LNK2001 unresolved external symbol "public: bool __cdecl LASwritePoint::setup(unsigned int,class LASitem const *,class LASzip const *)" (?setup@LASwritePoint@@QEAA_NIPEBVLASitem@@PEBVLASzip@@@Z)  Laslib  C:\Users\Vmdev\Documents\Laslib\laswriter_las.obj   1   
Error   LNK2001 unresolved external symbol "public: __cdecl LASwritePoint::~LASwritePoint(void)" (??1LASwritePoint@@QEAA@XZ)    Laslib  C:\Users\Vmdev\Documents\Laslib\laswriter_las.obj   1   
Error   LNK2001 unresolved external symbol "public: __cdecl LASwritePoint::LASwritePoint(void)" (??0LASwritePoint@@QEAA@XZ) Laslib  C:\Users\Vmdev\Documents\Laslib\laswriter_las.obj   1   
Error   LNK2001 unresolved external symbol "public: bool __cdecl LASzip::request_version(unsigned short)" (?request_version@LASzip@@QEAA_NG@Z)  Laslib  C:\Users\Vmdev\Documents\Laslib\laswriter_las.obj   1   
Error   LNK2001 unresolved external symbol "public: bool __cdecl LASzip::set_chunk_size(unsigned int)" (?set_chunk_size@LASzip@@QEAA_NI@Z)  Laslib  C:\Users\Vmdev\Documents\Laslib\laswriter_las.obj   1   
Error   LNK2001 unresolved external symbol "public: bool __cdecl LASzip::is_standard(unsigned char *,unsigned short *)" (?is_standard@LASzip@@QEAA_NPEAEPEAG@Z) Laslib  C:\Users\Vmdev\Documents\Laslib\laswriter_las.obj   1   
Error   LNK2001 unresolved external symbol "public: bool __cdecl LASzip::setup(unsigned short,class LASitem const *,unsigned short)" (?setup@LASzip@@QEAA_NGPEBVLASitem@@G@Z)   Laslib  C:\Users\Vmdev\Documents\Laslib\laswriter_las.obj   1   
Error   LNK1120 47 unresolved externals Laslib  C:\Users\Vmdev\Documents\built\Laslib\x64\Release\LASlib.dll    1   

EDIT

I added preprocesor definitions, which mentioned in comments, to mydef.hpp file This code is listed below:

#ifdef LASLIB_DLL
#define LASLIB_DLL __declspec(dllexport)
#else
#define LASLIB_DLL __declspec(dllimport)
#endif

and every class for export looks like, for example:

class LASLIB_DLL LASreader
{
public:
  LASheader header;
  LASpoint point;

  I64 npoints;
  I64 p_count;
...
}

but I have had many errors:

Severity    Code    Description Project File    Line    Suppression State
    Error   LNK1120 54 unresolved externals LasTools_lib    C:\Users\Vmdev\Documents\built\LasTools_lib\x64\Release\LASlib.dll  1   
    Error   LNK2001 unresolved external symbol "public: bool __cdecl ArithmeticDecoder::init(class ByteStreamIn *,bool)" (?init@ArithmeticDecoder@@QEAA_NPEAVByteStreamIn@@_N@Z)    LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\laswaveform13reader.obj   1   
    Error   LNK2001 unresolved external symbol "public: bool __cdecl ArithmeticEncoder::init(class ByteStreamOut *)" (?init@ArithmeticEncoder@@QEAA_NPEAVByteStreamOut@@@Z) LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\laswaveform13writer.obj   1   
    Error   LNK2001 unresolved external symbol "public: bool __cdecl LASindex::intersect_circle(double,double,double)" (?intersect_circle@LASindex@@QEAA_NNNN@Z)    LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\lasreader.obj 1   
    Error   LNK2001 unresolved external symbol "public: bool __cdecl LASindex::intersect_rectangle(double,double,double,double)" (?intersect_rectangle@LASindex@@QEAA_NNNNN@Z)  LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\lasreader.obj 1   
    Error   LNK2001 unresolved external symbol "public: bool __cdecl LASindex::intersect_tile(float,float,float)" (?intersect_tile@LASindex@@QEAA_NMMM@Z)   LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\lasreader.obj 1   
    Error   LNK2001 unresolved external symbol "public: bool __cdecl LASindex::read(char const *)" (?read@LASindex@@QEAA_NPEBD@Z)   LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\lasreader.obj 1   
    Error   LNK2001 unresolved external symbol "public: bool __cdecl LASindex::read(class ByteStreamIn *)" (?read@LASindex@@QEAA_NPEAVByteStreamIn@@@Z) LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\lasreader_las.obj 1   
    Error   LNK2001 unresolved external symbol "public: bool __cdecl LASindex::seek_next(class LASreader *)" (?seek_next@LASindex@@QEAA_NPEAVLASreader@@@Z) LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\lasreader.obj 1   
    Error   LNK2001 unresolved external symbol "public: bool __cdecl LASreadPoint::check_end(void)" (?check_end@LASreadPoint@@QEAA_NXZ) LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\lasreader_las.obj 1   
    Error   LNK2001 unresolved external symbol "public: bool __cdecl LASreadPoint::done(void)" (?done@LASreadPoint@@QEAA_NXZ)   LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\lasreader_las.obj 1   
    Error   LNK2001 unresolved external symbol "public: bool __cdecl LASreadPoint::init(class ByteStreamIn *)" (?init@LASreadPoint@@QEAA_NPEAVByteStreamIn@@@Z) LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\lasreader_las.obj 1   
    Error   LNK2001 unresolved external symbol "public: bool __cdecl LASreadPoint::read(unsigned char * const *)" (?read@LASreadPoint@@QEAA_NPEBQEAE@Z) LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\lasreader_las.obj 1   
    Error   LNK2001 unresolved external symbol "public: bool __cdecl LASreadPoint::seek(unsigned int,unsigned int)" (?seek@LASreadPoint@@QEAA_NII@Z)    LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\lasreader_las.obj 1   
    Error   LNK2001 unresolved external symbol "public: bool __cdecl LASreadPoint::setup(unsigned int,class LASitem const *,class LASzip const *)" (?setup@LASreadPoint@@QEAA_NIPEBVLASitem@@PEBVLASzip@@@Z)    LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\lasreader_las.obj 1   
    Error   LNK2001 unresolved external symbol "public: bool __cdecl LASwritePoint::chunk(void)" (?chunk@LASwritePoint@@QEAA_NXZ)   LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\laswriter_las.obj 1   
    Error   LNK2001 unresolved external symbol "public: bool __cdecl LASwritePoint::done(void)" (?done@LASwritePoint@@QEAA_NXZ) LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\laswriter_las.obj 1   
    Error   LNK2001 unresolved external symbol "public: bool __cdecl LASwritePoint::init(class ByteStreamOut *)" (?init@LASwritePoint@@QEAA_NPEAVByteStreamOut@@@Z) LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\laswriter_las.obj 1   
    Error   LNK2001 unresolved external symbol "public: bool __cdecl LASwritePoint::setup(unsigned int,class LASitem const *,class LASzip const *)" (?setup@LASwritePoint@@QEAA_NIPEBVLASitem@@PEBVLASzip@@@Z)  LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\laswriter_las.obj 1   
    Error   LNK2001 unresolved external symbol "public: bool __cdecl LASwritePoint::write(unsigned char const * const *)" (?write@LASwritePoint@@QEAA_NPEBQEBE@Z)   LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\laswriter_las.obj 1   
    Error   LNK2001 unresolved external symbol "public: bool __cdecl LASzip::check(void)" (?check@LASzip@@QEAA_NXZ) LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\lasreader_las.obj 1   
    Error   LNK2001 unresolved external symbol "public: bool __cdecl LASzip::is_standard(unsigned char *,unsigned short *)" (?is_standard@LASzip@@QEAA_NPEAEPEAG@Z) LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\laswriter_las.obj 1   
    Error   LNK2001 unresolved external symbol "public: bool __cdecl LASzip::request_version(unsigned short)" (?request_version@LASzip@@QEAA_NG@Z)  LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\laswriter_las.obj 1   
    Error   LNK2001 unresolved external symbol "public: bool __cdecl LASzip::setup(unsigned short *,class LASitem * *,unsigned char,unsigned short,unsigned short)" (?setup@LASzip@@QEAA_NPEAGPEAPEAVLASitem@@EGG@Z)    LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\lasreaderbuffered.obj 1   
    Error   LNK2001 unresolved external symbol "public: bool __cdecl LASzip::setup(unsigned short,class LASitem const *,unsigned short)" (?setup@LASzip@@QEAA_NGPEBVLASitem@@G@Z)   LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\laswriter_las.obj 1   
    Error   LNK2001 unresolved external symbol "public: bool __cdecl LASzip::set_chunk_size(unsigned int)" (?set_chunk_size@LASzip@@QEAA_NI@Z)  LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\laswriter_las.obj 1   
    Error   LNK2001 unresolved external symbol "public: char const * __cdecl LASzip::get_error(void)const " (?get_error@LASzip@@QEBAPEBDXZ) LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\lasreader_las.obj 1   
    Error   LNK2001 unresolved external symbol "public: int __cdecl IntegerCompressor::decompress(int,unsigned int)" (?decompress@IntegerCompressor@@QEAAHHI@Z) LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\laswaveform13reader.obj   1   
    Error   LNK2001 unresolved external symbol "public: void __cdecl ArithmeticDecoder::done(void)" (?done@ArithmeticDecoder@@QEAAXXZ)  LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\laswaveform13reader.obj   1   
    Error   LNK2001 unresolved external symbol "public: void __cdecl ArithmeticEncoder::done(void)" (?done@ArithmeticEncoder@@QEAAXXZ)  LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\laswaveform13writer.obj   1   
    Error   LNK2001 unresolved external symbol "public: void __cdecl IntegerCompressor::compress(int,int,unsigned int)" (?compress@IntegerCompressor@@QEAAXHHI@Z)   LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\laswaveform13writer.obj   1   
    Error   LNK2001 unresolved external symbol "public: void __cdecl IntegerCompressor::initCompressor(void)" (?initCompressor@IntegerCompressor@@QEAAXXZ)  LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\laswaveform13writer.obj   1   
    Error   LNK2001 unresolved external symbol "public: void __cdecl IntegerCompressor::initDecompressor(void)" (?initDecompressor@IntegerCompressor@@QEAAXXZ)  LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\laswaveform13reader.obj   1   
    Error   LNK2001 unresolved external symbol "public: __cdecl ArithmeticDecoder::ArithmeticDecoder(void)" (??0ArithmeticDecoder@@QEAA@XZ) LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\laswaveform13reader.obj   1   
    Error   LNK2001 unresolved external symbol "public: __cdecl ArithmeticDecoder::~ArithmeticDecoder(void)" (??1ArithmeticDecoder@@QEAA@XZ)    LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\laswaveform13reader.obj   1   
    Error   LNK2001 unresolved external symbol "public: __cdecl ArithmeticEncoder::ArithmeticEncoder(void)" (??0ArithmeticEncoder@@QEAA@XZ) LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\laswaveform13writer.obj   1   
    Error   LNK2001 unresolved external symbol "public: __cdecl ArithmeticEncoder::~ArithmeticEncoder(void)" (??1ArithmeticEncoder@@QEAA@XZ)    LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\laswaveform13writer.obj   1   
    Error   LNK2001 unresolved external symbol "public: __cdecl IntegerCompressor::IntegerCompressor(class ArithmeticDecoder *,unsigned int,unsigned int,unsigned int,unsigned int)" (??0IntegerCompressor@@QEAA@PEAVArithmeticDecoder@@IIII@Z) LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\laswaveform13reader.obj   1   
    Error   LNK2001 unresolved external symbol "public: __cdecl IntegerCompressor::IntegerCompressor(class ArithmeticEncoder *,unsigned int,unsigned int,unsigned int,unsigned int)" (??0IntegerCompressor@@QEAA@PEAVArithmeticEncoder@@IIII@Z) LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\laswaveform13writer.obj   1   
    Error   LNK2001 unresolved external symbol "public: __cdecl IntegerCompressor::~IntegerCompressor(void)" (??1IntegerCompressor@@QEAA@XZ)    LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\laswaveform13reader.obj   1   
    Error   LNK2001 unresolved external symbol "public: __cdecl LASindex::LASindex(void)" (??0LASindex@@QEAA@XZ)    LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\lasreader.obj 1   
    Error   LNK2001 unresolved external symbol "public: __cdecl LASindex::~LASindex(void)" (??1LASindex@@QEAA@XZ)   LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\lasreader.obj 1   
    Error   LNK2001 unresolved external symbol "public: __cdecl LASreadPoint::LASreadPoint(void)" (??0LASreadPoint@@QEAA@XZ)    LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\lasreader_las.obj 1   
    Error   LNK2001 unresolved external symbol "public: __cdecl LASreadPoint::~LASreadPoint(void)" (??1LASreadPoint@@QEAA@XZ)   LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\lasreader_las.obj 1   
    Error   LNK2001 unresolved external symbol "public: __cdecl LASwritePoint::LASwritePoint(void)" (??0LASwritePoint@@QEAA@XZ) LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\laswriter_las.obj 1   
    Error   LNK2001 unresolved external symbol "public: __cdecl LASwritePoint::~LASwritePoint(void)" (??1LASwritePoint@@QEAA@XZ)    LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\laswriter_las.obj 1   
    Error   LNK2001 unresolved external symbol "public: __cdecl LASzip::LASzip(void)" (??0LASzip@@QEAA@XZ)  LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\lasreaderbuffered.obj 1   
    Error   LNK2001 unresolved external symbol "public: __cdecl LASzip::~LASzip(void)" (??1LASzip@@QEAA@XZ) LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\lasreader.obj 1   
    Error   LNK2001 unresolved external symbol "__declspec(dllimport) const LASreader::`vftable'" (__imp_??_7LASreader@@6B@)    LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\lasreader.obj 1   
    Error   LNK2001 unresolved external symbol "__declspec(dllimport) public: bool __cdecl LASreader::read_point(void)" (__imp_?read_point@LASreader@@QEAA_NXZ) LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\lasreaderbuffered.obj 1   
    Error   LNK2001 unresolved external symbol "__declspec(dllimport) public: class LASindex * __cdecl LASreader::get_index(void)const " (__imp_?get_index@LASreader@@QEBAPEAVLASindex@@XZ) LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\lasreaderpipeon.obj   1   
    Error   LNK2001 unresolved external symbol "__declspec(dllimport) public: virtual bool __cdecl LASreader::has_layers(void)const " (__imp_?has_layers@LASreader@@UEBA_NXZ)   LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\lasreaderbuffered.obj 1   
    Error   LNK2001 unresolved external symbol "__declspec(dllimport) public: virtual void __cdecl LASwriter::update_inventory(class LASpoint const *)" (__imp_?update_inventory@LASwriter@@UEAAXPEBVLASpoint@@@Z)  LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\laswritercompatible.obj   1   
    Error   LNK2001 unresolved external symbol "__declspec(dllimport) public: virtual __cdecl LASwriter::~LASwriter(void)" (__imp_??1LASwriter@@UEAA@XZ)    LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\laswritercompatible.obj   1   
    Error   LNK2001 unresolved external symbol "__declspec(dllimport) public: __cdecl LASwriter::LASwriter(void)" (__imp_??0LASwriter@@QEAA@XZ) LasTools_lib    C:\Users\Vmdev\Documents\LasTools_lib\laswritercompatible.obj   1   

I also tried compiling using author's code for expoting dll:

#define _WIN32 //I added this line

#ifndef _WIN32
#define LASLIB_DLL
#else  // _WIN32
#ifdef COMPILE_AS_DLL
#define LASLIB_DLL __declspec(dllexport)
#elif USE_AS_DLL
#define LASLIB_DLL __declspec(dllimport)
#else
#define LASLIB_DLL 
#endif
#endif // _WIN32

but also don't work.

Do you have any ideas?

Lisek
  • 5
  • 5
  • You will have to modify the headers to export all the classes you want visible to clients in the dll. An example for that is here: http://stackoverflow.com/a/6840659/487892 Being that this is supposed to compile for vc6 I would expect the porting task to be difficult in a modern compiler unless you are an expert. – drescherjm Mar 02 '17 at 13:40
  • I added preprocesor definition #define LASLIB_DLL __declspec(dllexport). And it added for interesting classes. But I still have the same errors. – Lisek Mar 02 '17 at 14:23
  • Is `LASLIB_DLL` defined as `__declspec(dllimport)` for the client applications? The MACRO needs to switch between the two depending on if you are building or using the dll. – drescherjm Mar 02 '17 at 14:26
  • I edited my ask including comments suggestion, but cannot compile dll – Lisek Mar 02 '17 at 15:59
  • Did you add "COMPILE_AS_DLL` to your preprocessor definitions for building the dll. Don't add it for using the dll. – drescherjm Mar 02 '17 at 18:02

0 Answers0