尝试使用tmxlite编译项目时LNK2019错误

时间:2018-02-04 03:13:00

标签: c++ tiled tmx

我一直收到这些错误:

LNK2019未解析的外部符号_mz_inflateInit在函数“bool __cdecl tmx :: decompress(char const *,class std :: vector&,int,int)”中引用(?解压缩@tmx @@ YA_NPBDAAV?$ vector @ EV? $分配器| E @ STD @@@ STD @@ @ HH Z)

LNK2019未解析的外部符号_mz_inflate在函数“bool __cdecl tmx :: decompress(char const *,class std :: vector>&,int,int)”中引用“(?decompress @ tmx @@ YA_NPBDAAV?$ vector @ EV?$分配器| E @ STD @@@ STD @@ @ HH Z)

LNK2019未解析的外部符号_mz_inflateEnd在函数“bool __cdecl tmx :: decompress(char const *,class std :: vector>&,int,int)”中引用“(?decompress @ tmx @@ YA_NPBDAAV?$ vector @ EV?$分配器| E @ STD @@@ STD @@ @ HH Z)

当我尝试编译我的tmxlite项目时。我项目中唯一的源代码文件是tmxlite附带的源文件。

#include "stdafx.h"
#include <SFML/Graphics.hpp>

#include <SFML/Graphics/RenderWindow.hpp>
#include <SFML/Window/Event.hpp>

#include <tmxlite/Map.hpp> 

#include "C:\Program Files (x86)\tmxlite\SFMLExample\src\SFMLOrthogonalLayer.hpp"

#include "FreeFuncs.cpp"
#include "ImageLayer.cpp"
#include "Map.cpp"
#include "miniz.c"
#include "Object.cpp"
#include "ObjectGroup.cpp"
#include "Property.cpp"
#include "TileLayer.cpp"
#include "Tileset.cpp"
#include "pugixml.cpp"

using namespace sf;

int main()
{
        RenderWindow window(VideoMode(800, 600), "SFML window");

        tmx::Map map;
        map.load("assets/demo.tmx");

        MapLayer layerZero(map, 0);
        MapLayer layerOne(map, 1);
        MapLayer layerTwo(map, 2);

        while (window.isOpen())
        {
            Event event;
            while (window.pollEvent(event))
            {
                if (event.type == Event::Closed)
                    window.close();
            }

            window.clear(Color::Black);
            window.draw(layerZero);
            window.draw(layerOne);
            window.draw(layerTwo);
            window.display();
        }

    return 0;
}

我正在使用Visual Studio Community 2017

1 个答案:

答案 0 :(得分:0)

将现有src/tmxlite/miniz.*个文件添加到您的项目中。仅将Map.*包含在项目中是不够的,您应该将所有源文件添加到项目中。

更好的方法是将现有项目tmxlite.vcxproj添加到解决方案中,并将此项目添加到项目的依赖项中。

不要使用#include指令将.cpp文件包含到源中。将它们添加到项目树中。