我不断收到这些错误:
_mz_inflateInit LNK2019函数"bool __cdecl tmx::d ecompress(char const *,class std::vector &,int,int(" (?decompress@tmx@@YA_NPBDAAV?$vector@EV?$allocator@E@std@std@@hh@Z(
LNK2019未解析的外部符号_mz_inflate函数"bool __cdecl tmx::d ecompress(char const *,class std::vector> &,int,int(" (?decompress@tmx@@YA_NPBDAAV?$vector@EV?$allocator@E@std@@@std@@HH@Z(
LNK2019未解析的外部符号_mz_inflateEnd函数"bool __cdecl tmx::d ecompress(char const *,class std::vector> &,int,int(" (?decompress@tmx@@YA_NPBDAAV?$vector@EV?$allocator@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)tmxliteSFMLExamplesrcSFMLOrthogonalLayer.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
将现有的src/tmxlite/miniz.*
文件添加到项目中。仅将Map.*
包含在项目中是不够的,您应该将所有源文件添加到项目中。
更好的方法是将现有项目tmxlite.vcxproj
添加到解决方案中,并将此项目添加到项目的依赖项中。
不要使用 #include
指令将.cpp文件包含在源中。将它们添加到项目树中。