我是创建 Makefile 的新手。使用动态链接时我可以成功编译我的程序,但是在尝试静态编译时出现“未定义的引用”错误。
CC=g++
CXXFLAGS= -g -Wall -Wextra
#LDFLAGS= -g -l boost_iostreams #this works for dynamic linking
LDFLAGS= -Wl,-Bstatic -lboost_iostreams -Wl,-Bdynamic
default: zoneParserTester
zoneParser:
$(CC) $(CXXFLAGS) $(LDFLAGS) $@.cpp
zoneParserTester: zoneParser.o
$(CC) $(CXXFLAGS) $(LDFLAGS) zoneParser.o -o $@ $@.cpp
gzExample:
$(CC) $(CXXFLAGS) $(LDFLAGS) -o $@ $@.cpp
在网上搜索后,似乎要使用的正确参数是:“-Wl,-Bstatic -lboost_iostreams -Wl,-Bdynamic”。谁能告诉我我做错了什么?