¿Las bibliotecas streflop o boost cambian la definición de std :: min?std :: min se está redefiniendo, pero ¿cómo?
que tienen un proyecto que compila bien con g ++/hacer HASTA QUE fusionarla con la CMake construir de otro proyecto (utilizando add_directory). De repente me sale:
númerono matching function for call to min(double&,float)
La línea que dice que el error está en que está mal (está apuntando a la última línea del archivo de origen) pero voy a asumir el código en cuestión es la siguiente:
first = std::min (first, key.mTime);
Donde primero se declara como un doble.
El proyecto 'padre' (Primavera RTS) utiliza impulso y streflop pero incluso después de reemplazar toda incluye, por <math.h>
con "streflop_cond.h"
en el proyecto secundario (assimp) el problema permanece.
Tal vez algunas opciones del compilador son responsables, no estoy seguro. Una teorías serían apreciadas. La fuente para ambos proyectos está disponible en línea.
He pasado casi 7 horas en esto ahora y no me parece más cerca de una solución.
El error completo y construir banderas es:
[ 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
¿No puedes hacer un nuevo archivo fuente con los mismos '' include's y using's y vuelva a comprobar? – Potatoswatter