Tôi đang cố gắng biên dịch chương trình C++ trên cửa sổ bằng GCC và một tệp makefile.lỗi: '_hypot' không được khai báo trong phạm vi này
Tôi nhận được lỗi sau
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)); }
tôi đọc rằng bất kỳ tập tin có chứa trên GCC cần cờ mối liên kết -lm. Vì vậy, tôi đã thêm này để makefile của tôi, nhưng nó đã không khắc phục được vấn đề ...
Đây là makefile tôi
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 [email protected] $(LFLAGS)
$(BUILD_DIR)/$(MAIN).o: $(SRC_DIR)/MyFirstVstMain.cpp
$(CC) $(CFLAGS) -c -o [email protected] $< $(LFLAGS)
$(BUILD_DIR)/%.o: $(SRC_DIR)/%.cpp $(SRC_DIR)/%.h
$(CC) $(CFLAGS) -c -o [email protected] $< $(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)
Rõ ràng một lỗi trong MinGW: http://ehc.ac/p/mingw/bugs/2250/ –
Làm sao để tôi có được xung quanh này. Tôi đang sử dụng thư viện của bên thứ ba sử dụng math.h. Cụ thể là sdst steinberg vst. – ScottF
vì vậy ... làm thế nào về một mẫu mã? Các makefile là không liên quan khác hơn để hiển thị các CFLAGS –