pixel icon indicating copy to clipboard operation
pixel copied to clipboard

Build error on Windows

Open NancyLi1013 opened this issue 5 years ago • 4 comments

When trying to build pixel on Windows platform using vcpkg, it failed with no return value in https://github.com/dascandy/pixel/blob/v0.3/pixel/src/Window.cpp#L270. After I update to the latest commit, there are still some errors like this:

f:\tools\vcpkg\buildtrees\pixel\src\0e9eaf4ec5-e3c6a1d6da\pixel\include\pixel\Color.hpp(21): warning C4244: 'initializing': conversion from 'float' to 'uint8_t', possible loss of data
F:\tools\vcpkg\buildtrees\pixel\src\0e9eaf4ec5-e3c6a1d6da\examples\platformer\src\platformer.cpp(38): error C2079: 'world' uses undefined class 'std::array<std::string,10>'
F:\tools\vcpkg\buildtrees\pixel\src\0e9eaf4ec5-e3c6a1d6da\examples\platformer\src\platformer.cpp(38): error C2440: 'initializing': cannot convert from 'initializer list' to 'int'
F:\tools\vcpkg\buildtrees\pixel\src\0e9eaf4ec5-e3c6a1d6da\examples\platformer\src\platformer.cpp(49): note: The initializer contains too many elements
F:\tools\vcpkg\buildtrees\pixel\src\0e9eaf4ec5-e3c6a1d6da\examples\platformer\src\platformer.cpp(56): error C2109: subscript requires array or pointer type
F:\tools\vcpkg\buildtrees\pixel\src\0e9eaf4ec5-e3c6a1d6da\examples\platformer\src\platformer.cpp(57): error C2065: 'e': undeclared identifier
F:\tools\vcpkg\buildtrees\pixel\src\0e9eaf4ec5-e3c6a1d6da\examples\platformer\src\platformer.cpp(66): error C2109: subscript requires array or pointer type
F:\tools\vcpkg\buildtrees\pixel\src\0e9eaf4ec5-e3c6a1d6da\examples\platformer\src\platformer.cpp(67): error C2109: subscript requires array or pointer type

Is there any plan to fix the errors in examples? If possible, it might be better to add option BUILD_EXAMPLE to CMakeLists.txt.

Thanks.

Related issue #https://github.com/microsoft/vcpkg/issues/10590

NancyLi1013 avatar Apr 02 '20 09:04 NancyLi1013

missing #include <array>

linquize avatar Apr 02 '20 10:04 linquize

Adding #include <array>

pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::AliceBlue" (?AliceBlue@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::AntiqueWhite" (?AntiqueWhite@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::Aqua" (?Aqua@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::Aquamarine" (?Aquamarine@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::Azure" (?Azure@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::Beige" (?Beige@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::Bisque" (?Bisque@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::Black" (?Black@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::BlanchedAlmond" (?BlanchedAlmond@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::Blue" (?Blue@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::BlueViolet" (?BlueViolet@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::Brown" (?Brown@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::BurlyWood" (?BurlyWood@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::CadetBlue" (?CadetBlue@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::Chartreuse" (?Chartreuse@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::Chocolate" (?Chocolate@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::Coral" (?Coral@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::CornflowerBlue" (?CornflowerBlue@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::Cornsilk" (?Cornsilk@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::Crimson" (?Crimson@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::Cyan" (?Cyan@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::DarkBlue" (?DarkBlue@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::DarkCyan" (?DarkCyan@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::DarkGoldenRod" (?DarkGoldenRod@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::DarkGray" (?DarkGray@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::DarkGrey" (?DarkGrey@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::DarkGreen" (?DarkGreen@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::DarkKhaki" (?DarkKhaki@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::DarkMagenta" (?DarkMagenta@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::DarkOliveGreen" (?DarkOliveGreen@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::DarkOrange" (?DarkOrange@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::DarkOrchid" (?DarkOrchid@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::DarkRed" (?DarkRed@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::DarkSalmon" (?DarkSalmon@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::DarkSeaGreen" (?DarkSeaGreen@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::DarkSlateBlue" (?DarkSlateBlue@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::DarkSlateGray" (?DarkSlateGray@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::DarkSlateGrey" (?DarkSlateGrey@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::DarkTurquoise" (?DarkTurquoise@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::DarkViolet" (?DarkViolet@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::DeepPink" (?DeepPink@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::DeepSkyBlue" (?DeepSkyBlue@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::DimGray" (?DimGray@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::DimGrey" (?DimGrey@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::DodgerBlue" (?DodgerBlue@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::FireBrick" (?FireBrick@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::FloralWhite" (?FloralWhite@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::ForestGreen" (?ForestGreen@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::Fuchsia" (?Fuchsia@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::Gainsboro" (?Gainsboro@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::GhostWhite" (?GhostWhite@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::Gold" (?Gold@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::GoldenRod" (?GoldenRod@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::Gray" (?Gray@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::Grey" (?Grey@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::Green" (?Green@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::GreenYellow" (?GreenYellow@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::HoneyDew" (?HoneyDew@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::HotPink" (?HotPink@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::IndianRed" (?IndianRed@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::Indigo" (?Indigo@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::Ivory" (?Ivory@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::Khaki" (?Khaki@Color@Pixel@@2V12@B) already defined in conway.cpp.obj
pixeld.lib(Canvas.cpp.obj) : error LNK2005: "public: static class Pixel::Color const Pixel::Color::Lavender" (?Lavender@Color@Pixel@@2V12@B) already defined in conway.cpp.obj

The key problem is here.

NancyLi1013 avatar Apr 02 '20 10:04 NancyLi1013

Problem in Debug build

linquize avatar Apr 02 '20 10:04 linquize

Release build is the same issue on my machine.

NancyLi1013 avatar Apr 03 '20 01:04 NancyLi1013