C++ 链接cygwin下makefile中的boost库
我正在尝试使用带有cygwin的makefile将我的程序与boost库链接。这是我的makefile:C++ 链接cygwin下makefile中的boost库,c++,boost,linker,makefile,cygwin,C++,Boost,Linker,Makefile,Cygwin,我正在尝试使用带有cygwin的makefile将我的程序与boost库链接。这是我的makefile: CXX = g++ CXXFLAGS = -Wno-signed-compare -Wall -std=c++11 -funsigned-char -I /cygdrive/e/boost/include/boost-1_55/boost LNKFLAGS = -L cygdrive/e/boost/lib SRCDIR = src OUTDIR = bin EXEC = $(OUTD
CXX = g++
CXXFLAGS = -Wno-signed-compare -Wall -std=c++11 -funsigned-char -I /cygdrive/e/boost/include/boost-1_55/boost
LNKFLAGS = -L cygdrive/e/boost/lib
SRCDIR = src
OUTDIR = bin
EXEC = $(OUTDIR)/prg
SOURCES = $(wildcard src/*.cpp)
OBJECTS := $(SOURCES:$(SRCDIR)/%.cpp=$(OUTDIR)/%.o)
all: $(EXEC)
$(EXEC): $(OBJECTS)
$(CXX) $(LNKFLAGS) $(OBJECTS) -o $(EXEC) -l boost_thread
$(OBJECTS): $(OUTDIR)/%.o : $(SRCDIR)/%.cpp
mkdir -p $(OUTDIR)
$(CXX) $(CXXFLAGS) -c -O3 $< -o $@
clean:
rm -rf $(OUTDIR)
.PHONY: clean
怎么了?我应该具体说明什么
LNKFLAGS = -L/cygdrive/e/boost/lib
/cygdrive/e/boost/lib
是否真的包含使用GCC工具链构建的boost库
或libboost_线程。一个
可以工作libboost_线程。因此
要求将库命名为-lboost\u thread
或libboost\u thread.a
libboost\u thread.so
或类似工具将不起作用libboost\u thread-mt.a
你是如何建立你的图书馆的?你看到任何
libboost_-thread-xxx
库了吗?我有libboost_-thread-vc120-mt-1_55.lib和libboost_-thread-vc120-mt-gd-1_55.lib,它们在E:\boost\lib中看起来像是使用Microsoft Visual Studio构建的,但你正在链接其他。仍然没有回答,没有windows boost用户?我在win7上使用boost1.64,cygwing++5.4x64,同样的错误。我的g++标志是-ic:/tools/boost/boost164/和-Lc:/tools/boost/boost164/libs,我可以看到c:/tools/boost/boost164/stage/lib/libboost\u thread.a;我用C:\tools\boost\boost164>bootstrap.sh gcc&&b2.exe安装了boost1.64.7z。。58次失败,更新了1123个目标。@mosh您的-L
选项至少应该是-LC:\tools\boost\boost164\stage\lib
。
LNKFLAGS = -L/cygdrive/e/boost/lib