Czy biblioteki streflop lub boost zmieniają definicję std :: min?std :: min jest na nowo definiowany, ale jak?
Mam projektu, który kompiluje dobrze z g ++/make UNTIL scalam go z CMake kompilacji innego projektu (przy użyciu add_directory). Nagle pojawia się:
liczbano matching function for call to min(double&,float)
Linia twierdzi, błąd jest na jest źle (to wskazując na ostatniej linii pliku źródłowego), ale mam zamiar założyć odpowiedni kod jest taka:
first = std::min (first, key.mTime);
Gdzie pierwsza jest zadeklarowana jako podwójna.
Projekt "nadrzędny" (Spring RTS) wykorzystuje boost i streflop, ale nawet po wymianie wszystkich załączników dla <math.h>
z "streflop_cond.h"
w projekcie potomnym (assimp) problem pozostaje.
Może niektóre flagi kompilatora są odpowiedzialne, nie jestem pewien. Docenione zostaną teorie. Źródło obu projektów jest dostępne online.
Spędziłem prawie 7 godzin nad tym i nie wydaje mi się bliższy rozwiązania.
pełnej błędów i budować flagi to:
[ 61%] Building CXX object rts/lib/assimp/code/CMakeFiles/assimp.dir/ScenePreprocessor.cpp.o
cd /mnt/work/workspace/spring-patch-git/linux/build/rts/lib/assimp/code && /usr/bin/g++ -Dassimp_EXPORTS -DSYNCCHECK -DNO_AVI -DSPRING_DATADIR=\"/usr/local/share/games/spring\" -DSTREFLOP_SSE -DASSIMP_BUILD_DLL_EXPORT -msse -mfpmath=sse -fsingle-precision-constant -frounding-math -mieee-fp -pipe -fno-strict-aliasing -fvisibility=hidden -fvisibility-inlines-hidden -pthread -O0 -Wall -Wno-sign-compare -DDEBUG -D_DEBUG -DNO_CATCH_EXCEPTIONS -gstabs -fPIC -I/mnt/work/workspace/spring-patch-git/spring/rts/System -I/mnt/work/workspace/spring-patch-git/spring/rts/lib/lua/include -I/mnt/work/workspace/spring-patch-git/spring/rts/lib/streflop -I/usr/include/SDL -I/usr/include/boost-1_39 -I/mnt/work/workspace/spring-patch-git/spring/rts -I/usr/include/AL -I/usr/include/freetype2 -I/mnt/work/workspace/spring-patch-git/spring/rts/lib/assimp/include -I/mnt/work/workspace/spring-patch-git/spring/rts/lib/assimp/../streflop -o CMakeFiles/assimp.dir/ScenePreprocessor.cpp.o -c /mnt/work/workspace/spring-patch-git/spring/rts/lib/assimp/code/ScenePreprocessor.cpp
/mnt/work/workspace/spring-patch-git/spring/rts/lib/assimp/code/ScenePreprocessor.cpp: In member function void Assimp::ScenePreprocessor::ProcessAnimation(aiAnimation*):
/mnt/work/workspace/spring-patch-git/spring/rts/lib/assimp/code/ScenePreprocessor.cpp:280: error: no matching function for call to min(double&, float)
make[2]: *** [rts/lib/assimp/code/CMakeFiles/assimp.dir/ScenePreprocessor.cpp.o] Error 1
Nie możesz utworzyć nowego pliku źródłowego z tymi samymi 'include's i' using's i double-check? – Potatoswatter