0e636e275d
- 覆盖全部 10 个案例(原 Readme 只到 case06) - 新增案例选择指南表格 - Readme.html 为深色主题独立 HTML 页面 (含卡片布局、标签分类、代码高亮、响应式设计) - 各案例详情对齐最新配置参数
50 lines
1.0 KiB
Makefile
50 lines
1.0 KiB
Makefile
# engines/cpp/Makefile
|
|
|
|
CXX = g++
|
|
SRCS = main.cpp
|
|
LIB_SRC = dynamics_lib.cpp
|
|
|
|
UNAME_S := $(shell uname -s 2>/dev/null || echo Windows)
|
|
|
|
CXXFLAGS = -O3 -march=native -std=c++17 -Wall -Wextra -D_USE_MATH_DEFINES
|
|
|
|
# Windows 下静态链接运行时,避免 libstdc++-6.dll / libgcc_s_seh-1.dll 版本冲突
|
|
ifeq ($(UNAME_S),Windows)
|
|
STATIC_FLAGS = -static-libgcc -static-libstdc++
|
|
else
|
|
STATIC_FLAGS =
|
|
endif
|
|
|
|
TARGET = build/dynamics_cpp.exe
|
|
|
|
ifeq ($(UNAME_S),Linux)
|
|
DLL_TARGET = build/dynamics_cpp.so
|
|
DLL_FLAGS = -shared -fPIC
|
|
else ifeq ($(UNAME_S),Darwin)
|
|
DLL_TARGET = build/dynamics_cpp.dylib
|
|
DLL_FLAGS = -dynamiclib
|
|
else
|
|
DLL_TARGET = build/dynamics_cpp.dll
|
|
DLL_FLAGS = -shared
|
|
endif
|
|
|
|
.PHONY: all dll clean
|
|
|
|
all: $(TARGET)
|
|
|
|
dll: $(DLL_TARGET)
|
|
|
|
$(TARGET): $(SRCS) | build
|
|
$(CXX) $(CXXFLAGS) $(STATIC_FLAGS) -o $@ $(SRCS)
|
|
@echo " === C++ engine built: $@ ==="
|
|
|
|
$(DLL_TARGET): $(LIB_SRC) | build
|
|
$(CXX) $(CXXFLAGS) $(STATIC_FLAGS) $(DLL_FLAGS) -o $@ $(LIB_SRC)
|
|
@echo " === C++ DLL built: $@ ==="
|
|
|
|
build:
|
|
mkdir -p build
|
|
|
|
clean:
|
|
rm -rf build *.o
|