0

我想将 LASlib 编译为 dll。该库存储在github中。通常,LASlib 被编译为静态库。我在 Visual Studio 2015中编写了库编译指令,静态库编译成功。但是这种方式对我不利,因为我想在开发解决方案时使用 LASlib,它将是一个 dll 文件。我想将 LASlib 编译为 Windows dll。

我尝试了很多想法,但没有一个想法效果不佳。我使用 Visual Studio 2015 并选择配置类型为 dll 文件。此外,链接的 LASzip 已添加到链接器。但是这个步骤并没有成功编译。我把我的列表错误放在下面。我应该怎么做才能编译 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   

编辑

我将注释中提到的预处理器定义添加到 mydef.hpp 文件中。下面列出了此代码:

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

并且每个导出类看起来像,例如:

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

  I64 npoints;
  I64 p_count;
...
}

但我有很多错误:

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   

我还尝试使用作者的代码进行编译以导出 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

但也不行。

你有什么想法?

4

0 回答 0