C++ Boost&;生成文件
我尝试在OSX上使用boost_math libs(我没有使用Xcode),特别是包含 我自己下载并编译了boost_1_60_0(使用bootstrap.sh并遵循说明)。我没有使用家用brew或其他东西,这可能就是我的安装看起来如此糟糕的原因 我试图在Szabo.hpp中包含以下内容:C++ Boost&;生成文件,c++,boost,makefile,g++,clang++,C++,Boost,Makefile,G++,Clang++,我尝试在OSX上使用boost_math libs(我没有使用Xcode),特别是包含 我自己下载并编译了boost_1_60_0(使用bootstrap.sh并遵循说明)。我没有使用家用brew或其他东西,这可能就是我的安装看起来如此糟糕的原因 我试图在Szabo.hpp中包含以下内容: #include <boost/math/special_functions/erf.hpp> 我没有从g++得到链接错误,但是我得到: In file included from Szabo
#include <boost/math/special_functions/erf.hpp>
我没有从g++得到链接错误,但是我得到:
In file included from Szabo.cpp:12:
./Szabo.hpp:21:10: fatal error: 'boost/math/special_functions/erf.hpp' file not found
#include <boost/math/special_functions/erf.hpp>
^
1 error generated.
I_FLAGS=-I/Users/development/Documents/boost_1_60_0/
所有对象=main.o Gaussienne.o Grill.o Szabo.o
all: $(ALL_OBJECTS)
g++ -o hydrogene $(ALL_OBJECTS) $(LIB_FLAGS)
Gaussienne.o: Gaussienne.cpp
g++ -o Gaussienne.o -c Gaussienne.cpp -ansi ${I_FLAGS}
main.o: Gaussienne.hpp Grille.hpp main.cpp Szabo.o
g++ -o main.o -c main.cpp -ansi ${I_FLAGS}
Grille.o: Grille.cpp Gaussienne.cpp
g++ -o Grille.o -c Grille.cpp -ansi ${I_FLAGS}
Szabo.o: Szabo.cpp Gaussienne.cpp
g++ -o Szabo.o -c Szabo.cpp -ansi ${I_FLAGS}
.PHONY: clean mrproper
clean:
rm -rf *.o
mrproper: clean
rm -rf hydrogene
有没有传递I_标志的方法?您已经编译了Boost单独编译的库,这很好,但是您没有将标题复制到工具链的include路径。事实上,大多数Boost都是由只包含头的库组成的,因此这可以说是安装Boost的更关键的步骤 互联网告诉我,您可以在shell中使用以下命令找到默认的标题搜索路径:
gcc -x c++ -v -E /dev/null
()
找到后,将发行版的boost
子目录复制到它
而且,是的,这会容易得多…可能是一个命令 您需要告诉编译器在哪里找到该文件路径。你需要合适的
-I
参数(就像你已经有了-L
参数一样)。是的,我也这么认为,但我看到很多boost用户在boost文件夹的根目录下都有一个文件夹include,奇怪的是我没有,所以我真的不知道应该在-i中放什么。我试过使用-i/Documents/boost\u 1\u 60\u 0/
和-i/Documents/boost\u 1\u 60\u 0/boost
文件夹,但是如果你的include树的根目录中没有一个boost
文件夹,这可能有点奇怪(但可能没有)然后你不能将它包含在你使用的路径中,或者你创建了一个目录(作为一个符号链接,如果没有其他东西的话),这样你就可以使用它。我有正确的boost 1#60体系结构,我刚刚在文档中检查过。我的标题在boost_1_60_0/boost/math等中。。但是编译器似乎不理解在那里搜索,即使使用-I行。您将什么作为-I
参数传递给编译器?凭什么命令?
all: $(ALL_OBJECTS)
g++ -o hydrogene $(ALL_OBJECTS) $(LIB_FLAGS)
Gaussienne.o: Gaussienne.cpp
g++ -o Gaussienne.o -c Gaussienne.cpp -ansi ${I_FLAGS}
main.o: Gaussienne.hpp Grille.hpp main.cpp Szabo.o
g++ -o main.o -c main.cpp -ansi ${I_FLAGS}
Grille.o: Grille.cpp Gaussienne.cpp
g++ -o Grille.o -c Grille.cpp -ansi ${I_FLAGS}
Szabo.o: Szabo.cpp Gaussienne.cpp
g++ -o Szabo.o -c Szabo.cpp -ansi ${I_FLAGS}
.PHONY: clean mrproper
clean:
rm -rf *.o
mrproper: clean
rm -rf hydrogene
gcc -x c++ -v -E /dev/null