Fehler: '_hypot' wurde nicht deklariert, in diesem Umfang
Ich versuche zu kompilieren eines c++ - Programm unter windows mit GCC und makefile.
Ich erhalte die folgende Fehlermeldung
c:\mingw\include\math.h: In function 'float hypotf(float, float)':
c:\mingw\include\math.h:635:30: error: '_hypot' was not declared in this scope
{ return (float)(_hypot (x, y)); }
Habe ich gelesen, dass jede Datei, die auf GCC braucht das -lm dem linker flag. Also ich habe dieses zu meinem makefile, aber es hat keine Behebung des Problems...
Hier ist mein makefile
CC := g++
CFLAGS := -std=c++0x -g -O2 -static-libgcc -static-libstdc++
LFLAGS := -lm
BIN_DIR := bin
BUILD_DIR := build
SRC_DIR := src
MAIN := MyFirstVstMain
TARGET := MyFirstVstMake
SOURCES := $(wildcard src/*.cpp)
OBJECTS := $(SOURCES:$(SRC_DIR)/%.cpp=$(BUILD_DIR)/%.o)
$(BIN_DIR)/$(TARGET): CREATE_DIRS $(BUILD_DIR)/$(MAIN).o $(OBJECTS)
$(CC) $(OBJECTS) $(CFLAGS) -o $@ $(LFLAGS)
$(BUILD_DIR)/$(MAIN).o: $(SRC_DIR)/MyFirstVstMain.cpp
$(CC) $(CFLAGS) -c -o $@ $< $(LFLAGS)
$(BUILD_DIR)/%.o: $(SRC_DIR)/%.cpp $(SRC_DIR)/%.h
$(CC) $(CFLAGS) -c -o $@ $< $(LFLAGS)
CREATE_DIRS:
if not exist $(BIN_DIR) mkdir $(BIN_DIR)
if not exist $(BUILD_DIR) mkdir $(BUILD_DIR)
CLEAN:
if exist $(BUILD_DIR) rmdir /Q /S $(BUILD_DIR)
- Anscheinend ein bug in MinGW: ehc.ac/p/mingw/bugs/2250
- Wie kann ich dies umgehen. Ich bin mit einem Drittanbieter-Bibliothek, die verwendet math.h. Speziell das steinberg vst sdk.
- also,... wie etwa ein code-Beispiel? Das makefile ist irrelevant als zu zeigen, die CFLAGS
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist ein Fehler in MinGW, nicht gefunden habe einer festen, aber mit -D__NEIN_INLINE__ oder das Bearbeiten math.h _hypot zu hypot gelöst ist das Problem, nicht die richtige Lösung, aber funktioniert.
Andere möglich Problem: Sie haben möglicherweise mehrere MinGW-Versionen installiert haben, überprüfen Sie ob Sie die richtige
-std=gnu++
..., um die Verwendung der c++ - Bibliothek "ohne Unterdrückung von GNU-Erweiterungen," vor allem die Vermeidung der Verwendung von__STRICT_ANSI__
.