[M1 Mac, Big Sur 11.7.2, clang 13.0.0, wxWidgets 3.2.0, NO IDE]
FLTKにはハイパーリンク機能がないことが判明したため、wxWidgetsからの機能移植を模索しています。
wxWidgets導入自体は今年8月に済ませていたので、参考サイトから簡単なコードを拝借してMakefileを自作しビルドしてみました。
GitHubのソースからビルドしたwxWidgetsが不完全であることが分かり、Homebrew版に切り替えました。ただHomebrew版はdylibしかなく、静的ライブラリは別途ビルドする必要があるようです。
マクロが多くて初心者泣かせのサンプルコードでしたが、まあそのうち慣れるでしょう。
FLTKに比べてかなり多機能なのにこれもまたクセが強すぎるためか、ユーザー数はさほど多くないようです。
# コンパイラ
COMPILER = clang++
DEBUG = -g
# フラグ
CPPFLAGS = $(shell wx-config --inplace --cxxflags) -std=c++17
LDFLAGS = $(shell wx-config --inplace --libs) -lc++
# includeパス(-I)
INCLUDE = -I./include -I/Volumes/DATA_m1/code/cpp/mylib/include \
-I/opt/homebrew/Cellar/wxwidgets/3.2.0_1/include/wx-3.2
# ライブラリ(-l)
LIBRARY0 =
# ライブラリパス(-L)
LIBRARY = -L/opt/homebrew/Cellar/wxwidgets/3.2.0_1/lib
# ソースファイル
SRCDIR = ./src
SRCS = $(shell find $(SRCDIR) -type f)
# オブジェクトファイル
OBJDIR = ./obj
OBJS = $(addprefix $(OBJDIR), $(patsubst ./src/%.cpp,/%.o,$(SRCS)))
# 実行ファイル
TARGETDIR = ./bin
TARGET = test
# cppファイルからoファイル作成 $<:依存ファイル
$(OBJDIR)/%.o: $(SRCDIR)/%.cpp
$(COMPILER) $(CPPFLAGS) $(INCLUDE) $(DEBUG) -o $@ -c $<
# oファイルから実行ファイル作成
$(TARGET):$(OBJS)
$(COMPILER) -o $(TARGETDIR)/$@ $(OBJS) $(LIBRARY0) $(LDFLAGS) $(LIBRARY)
cp $(TARGETDIR)/$(TARGET) $(TARGET)
rm -f $(TARGET)
# 全ソース強制コンパイル
.PHONY:all
all: clean $(TARGET)
# 全ファイル削除
.PHONY:clean
clean:
rm -rf $(OBJS) $(TARGETDIR)/$(TARGET)