在cygwin下的makefile中链接boost库
Linking boost libraries in makefile under cygwin
我正在尝试使用makefile与cygwin链接我的程序与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 = $(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
结果:$ make
g++ -L cygdrive/e/boost/lib bin/test.o -o bin/prg -l boost_thread
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: cannot find -lboost_thread
怎么了?我应该指定什么?
-
在你的Makefile中,库的搜索路径是相对的,但在这种情况下应该是绝对的。
LNKFLAGS = -L/cygdrive/e/boost/lib
-
检查
/cygdrive/e/boost/lib
是否真的包含用GCC工具链构建的Boost库。-
libboost_thread.a
或libboost_thread.so
均可。 - 使用以
.lib
或.dll
结尾的Visual c++工具链构建的库将无法工作。
-
-
检查文件名是否匹配。
-
-lboost_thread
要求库命名为libboost_thread.a
或libboost_thread.so
。 -
libboost_thread-mt.a
或类似的不能工作
-
相关文章:
- 在Cygwin上链接Boost库
- CMAKE中无法链接Boost
- 使用cmake错误链接boost日志
- 如何在 Oracle Linux 上的 Eclipse 中编译和链接 boost 库
- 链接 boost 库时"Error while loading shared libraries"引发的,除了我无法使用 root 访问权限来修复它
- 跨多个环境动态链接 Boost
- 无法通过 CMake 链接 Boost 1.63.0
- 静态链接再次链接boost.test和cmake在Windows上的mingw
- 链接boost.python示例的问题
- 在CLion中链接Boost.Asio时Static_initialization_and_distruction错误
- HelloWorld:使用CMake下载、构建和链接Boost
- 链接Boost线程库
- 使用CMake问题链接Boost(Ubuntu 14.04)
- Ubuntu - 链接 boost.python - 致命错误:找不到 pyconfig
- 尝试链接 boost::文件系统以调试 MSVC11 项目时出现链接器错误
- 在OSX 10.10上链接Boost Python
- 在 Eclipse(或 Xcode)中链接 Boost 程序选项
- 链接boost线程库时发生gcc 4.8链接器错误
- 在CLion中使用CMake静态链接boost库
- 无法使用mingw32g++链接boost