# Won't compile, please halp

**URL:** <https://discourse.cataclysmdda.org/t/wont-compile-please-halp/10085>\
**Category:** The Garage\
**Created:** [July 16, 2015, 2:52pm UTC](https://discourse.cataclysmdda.org/t/wont-compile-please-halp/10085 "2015-07-16T14:52:24Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![nrfowler](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/nrfowler/32/1209_2.png) [@nrfowler](https://discourse.cataclysmdda.org/u/nrfowler)\
**Post date:** [July 16, 2015, 2:52pm UTC](https://discourse.cataclysmdda.org/t/wont-compile-please-halp/10085/1 "2015-07-16T14:52:24Z")

</div>

As far as I know I have set up everything correctly, according to the How to Compile wiki page. I have even compiled from source and run successfully before from this method, for some reason it is not working this time.

The error below is for the 0.C branch. When I try to compile the master branch, I get an error saying  
‘nextafter’ is not a member of ‘std’

`$ make NATIVE=win32 LOCALIZE=0
#define VERSION "0.C-6-g3a77179-dirty"
g++ -Wall -Wextra -g --std=c++11 -MMD -c src/overmap.cpp -o objwin/overmap.o
g++ -Wall -Wextra -g --std=c++11 -MMD -c src/json.cpp -o objwin/json.o
g++ -Wall -Wextra -g --std=c++11 -MMD -c src/bodypart.cpp -o objwin/bodypart.o
g++ -Wall -Wextra -g --std=c++11 -MMD -c src/mtypedef.cpp -o objwin/mtypedef.o
g++ -Wall -Wextra -g --std=c++11 -MMD -c src/activity_handlers.cpp -o objwin/activity_handlers.o
g++ -Wall -Wextra -g --std=c++11 -MMD -c src/simplexnoise.cpp -o objwin/simplexnoise.o
g++ -Wall -Wextra -g --std=c++11 -MMD -c src/mission_fail.cpp -o objwin/mission_fail.o
g++ -Wall -Wextra -g --std=c++11 -MMD -c src/worldfactory.cpp -o objwin/worldfactory.o
g++ -Wall -Wextra -g --std=c++11 -MMD -c src/calendar.cpp -o objwin/calendar.o
g++ -Wall -Wextra -g --std=c++11 -MMD -c src/live_view.cpp -o objwin/live_view.o
g++ -Wall -Wextra -g --std=c++11 -MMD -c src/mod_manager_ui.cpp -o objwin/mod_manager_ui.o
g++ -Wall -Wextra -g --std=c++11 -MMD -c src/mondeath.cpp -o objwin/mondeath.o
g++ -Wall -Wextra -g --std=c++11 -MMD -c src/mission_place.cpp -o objwin/mission_place.o
g++ -Wall -Wextra -g --std=c++11 -MMD -c src/missiondef.cpp -o objwin/missiondef.o
g++ -Wall -Wextra -g --std=c++11 -MMD -c src/animation_tiles.cpp -o objwin/animation_tiles.o
g++ -Wall -Wextra -g --std=c++11 -MMD -c src/character.cpp -o objwin/character.o
g++ -Wall -Wextra -g --std=c++11 -MMD -c src/player.cpp -o objwin/player.o
g++ -Wall -Wextra -g --std=c++11 -MMD -c src/newcharacter.cpp -o objwin/newcharacter.o
g++ -Wall -Wextra -g --std=c++11 -MMD -c src/wincurse.cpp -o objwin/wincurse.o
g++ -Wall -Wextra -g --std=c++11 -MMD -c src/mutation_data.cpp -o objwin/mutation_data.o
g++ -Wall -Wextra -g --std=c++11 -MMD -c src/mod_manager.cpp -o objwin/mod_manager.o
g++ -Wall -Wextra -g --std=c++11 -MMD -c src/advanced_inv.cpp -o objwin/advanced_inv.o
In file included from src/advanced_inv.cpp:11:0:
src/compatibility.h: In function ‘std::string to_string(T)’:
src/compatibility.h:63:12: error: ‘to_string’ is not a member of ‘std’
     return std::to_string(n);
            ^
src/compatibility.h:63:12: note: suggested alternative:
src/compatibility.h:61:13: note: ‘to_string’
 std::string to_string(T const n)
             ^
src/compatibility.h: In instantiation of ‘std::string to_string(T) [with T = double; typename std::enable_if<(((((std::is_arithmetic<_Tp>::value && (! std::is_same<T, bool>::value)) && (! std::is_same<T, wchar_t>::value)) && (! std::is_same<T, char>::value)) && (! std::is_same<T, char16_t>::value)) && (! std::is_same<T, char32_t>::value))>::type* <anonymous> = 0u; std::string = std::basic_string<char>]’:
src/advanced_inv.cpp:159:81: required from here
src/compatibility.h:64:1: warning: no return statement in function returning non-void [-Wreturn-type]
 }
 ^
src/compatibility.h: In instantiation of ‘std::string to_string(T) [with T = int; typename std::enable_if<(((((std::is_arithmetic<_Tp>::value && (! std::is_same<T, bool>::value)) && (! std::is_same<T, wchar_t>::value)) && (! std::is_same<T, char>::value)) && (! std::is_same<T, char16_t>::value)) && (! std::is_same<T, char32_t>::value))>::type* <anonymous> = 0u; std::string = std::basic_string<char>]’:
src/advanced_inv.cpp:161:58: required from here
src/compatibility.h:64:1: warning: no return statement in function returning non-void [-Wreturn-type]
src/compatibility.h: In instantiation of ‘std::string to_string(T) [with T = long int; typename std::enable_if<(((((std::is_arithmetic<_Tp>::value && (! std::is_same<T, bool>::value)) && (! std::is_same<T, wchar_t>::value)) && (! std::is_same<T, char>::value)) && (! std::is_same<T, char16_t>::value)) && (! std::is_same<T, char32_t>::value))>::type* <anonymous> = 0u; std::string = std::basic_string<char>]’:
src/advanced_inv.cpp:1635:58: required from here
src/compatibility.h:64:1: warning: no return statement in function returning non-void [-Wreturn-type]
Makefile:436: recipe for target 'objwin/advanced_inv.o' failed
make: *** [objwin/advanced_inv.o] Error 1`

---

<div class="post-metadata">

**Author:** ![kevin.granade](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/kevin.granade/32/1316_2.png) [@kevin.granade](https://discourse.cataclysmdda.org/u/kevin.granade)\
**Post date:** [July 16, 2015, 3:53pm UTC](https://discourse.cataclysmdda.org/t/wont-compile-please-halp/10085/2 "2015-07-16T15:53:00Z")

</div>

What compiler version are you using?  
We’ve seen this in the past with Mingw, it doesn’t support c++11 consistently.

---

<div class="post-metadata">

**Author:** ![nrfowler](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/nrfowler/32/1209_2.png) [@nrfowler](https://discourse.cataclysmdda.org/u/nrfowler)\
**Post date:** [July 16, 2015, 6:16pm UTC](https://discourse.cataclysmdda.org/t/wont-compile-please-halp/10085/3 "2015-07-16T18:16:12Z")

</div>

Think I’m using 4.9.2 of MingW…

At least that’s what I gather fro the filename, I basically followed [http://www.wiki.cataclysmdda.com/index.php?title=How\_to\_compile](http://www.wiki.cataclysmdda.com/index.php?title=How_to_compile) to the letter.

This is the folder name that I added in fstab, as per the directions linked above (presumably this contains the version information?):

C:\Program Files\mingw-w64\x86\_64-4.9.2-win32-seh-rt\_v4-rev2\mingw64

---

<div class="post-metadata">

**Author:** ![karlnp](https://avatars.discourse-cdn.com/v4/letter/k/f08c70/32.png) [@karlnp](https://discourse.cataclysmdda.org/u/karlnp)\
**Post date:** [July 16, 2015, 9:41pm UTC](https://discourse.cataclysmdda.org/t/wont-compile-please-halp/10085/4 "2015-07-16T21:41:40Z")

</div>

Make sure your mingw/bin path isn’t in PATH.

---

<div class="post-metadata">

**Author:** ![nrfowler](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/nrfowler/32/1209_2.png) [@nrfowler](https://discourse.cataclysmdda.org/u/nrfowler)\
**Post date:** [July 21, 2015, 4:54pm UTC](https://discourse.cataclysmdda.org/t/wont-compile-please-halp/10085/5 "2015-07-21T16:54:50Z")

</div>

Ahh, that was is it karlnp. I had to add it to PATH via Windows, apparently mingw was not updating PATH.

---

<div class="post-metadata">

**Author:** ![karlnp](https://avatars.discourse-cdn.com/v4/letter/k/f08c70/32.png) [@karlnp](https://discourse.cataclysmdda.org/u/karlnp)\
**Post date:** [July 21, 2015, 5:22pm UTC](https://discourse.cataclysmdda.org/t/wont-compile-please-halp/10085/6 "2015-07-21T17:22:23Z")

</div>

If something else breaks, try taking it out again. and sourcing /etc/profile from mingw64, since the MSYS console is the PATHless one & sets up the PATH for the other 2 consoles by modifying /etc/profile.
