【发布时间】:2014-09-25 01:35:39
【问题描述】:
我正在使用 boost 开发一个项目,但 preproc 出于某种神秘原因找不到 boost 头文件。
我使用的是 xUbuntu 32 位,我使用 g++ 和 boost 1.55.0
错误: main.cpp:1:26: fatal error: boost/bind.hpp: No such file or directory
如果我评论这个包含,它是下一个未找到的包含,所以问题不在于一个文件。
代码:
#include "boost/bind.hpp" // just to be sure I test with "" and <>
#include <boost/asio.hpp>
#include <sys/types.h>
makefile:
NAME = myProject
INSTALL_DIR = /usr/local/bin
FILES_DIR = /etc/myProject
RC_FILE = ./scripts/myproject.rc
SRC = main.cpp
OBJ = $(SRC:.cpp=.o)
CC = g++
IFLAGS = -I./boost/
LFLAGS = -pthread -L./boost/stage/lib/ -lboost_system-mt -lboost_regex-mt -lboost_filesystem-mt
RM = rm -f
all : $(OBJ)
$(CC) -o $(NAME) $(OBJ) $(IFLAGS) $(LFLAGS)
install :
mkdir -p $(INSTALL_DIR)
mkdir -p $(FILES_DIR)
cp $(NAME) $(INSTALL_DIR)
cp $(RC_FILE) /etc/init.d/
insserv $(RC_FILE)
remove :
insserv --remove $(RC_FILE)
clean :
find . -name "*~" -exec rm {} \;
find . -name "*.o" -exec rm {} \;
fclean : clean
$(RM) $(NAME)
re : clean all
.PHONY : install remove clean fclean
main.cpp 和 makefile 位于 whatever/myproject/
boost库在whatever/myproject/boost/
boost 库(.a 和 .so)位于 whatever/myproject/boost/stage/lib/
boost 标头位于 whatever/myproject/boost/boost/
我已经搜索了大约2个小时,尝试了我能想到的一切都没有成功,所以在此非常感谢可以解决这个问题的人。
编辑:
Bidule0hm make -n
g++ -c -o main.o main.cpp
g++ -o myProject main.o -I./boost/ -pthread -L./boost/stage/lib/ -lboost_system-mt -lboost_regex-mt -lboost_filesystem-mt
【问题讨论】:
-
如果您给出实际错误、真正的 makefile 详细信息以及源文件和 boost 标头的实际位置,这将更容易回答。
-
@AlanStokes 我已经添加了所有细节;)
标签: c++ include header-files