я пытаюсь использовать boost_math LIBS на OS X (я не использую Xcode), в частности, одна из которых error functionподталкивания & Makefile
Я скачал и составил boost_1_60_0 себя (с помощью bootstrap.sh и после инструкции.) Я не использовал домашнее пиво или что-то еще, что может быть связано с тем, что моя установка кажется такой напуганной.
Что я пытаюсь включить в моем Szabo.hpp это:
#include <boost/math/special_functions/erf.hpp>
Мой Makefile выглядит следующим образом:
LIB_FLAGS = -L/Documents/boost_1_60_0/stage/lib -lboost_math
ALL_OBJECTS = main.o Gaussienne.o Grille.o Szabo.o
all: $(ALL_OBJECTS)
g++ -o hydrogene $(ALL_OBJECTS) $(LIB_FLAGS)
Gaussienne.o: Gaussienne.cpp
g++ -o Gaussienne.o -c Gaussienne.cpp -W -Wall -ansi
main.o: Gaussienne.hpp Grille.hpp main.cpp Szabo.o
g++ -o main.o -c main.cpp -W -Wall -ansi
Grille.o: Grille.cpp Gaussienne.cpp
g++ -o Grille.o -c Grille.cpp -W -Wall -ansi
Szabo.o: Szabo.cpp Gaussienne.cpp
g++ -o Szabo.o -c Szabo.cpp -W -Wall -ansi
clean:
rm -rf *.o
mrproper: clean
rm -rf hydrogene
я не получаю связывающую ошибку от г ++, однако я получил :
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.
Можете ли вы предоставить помощь по устранению этого? Заранее спасибо
ИТАК, видимо, любит это, он работает:
LIB_FLAGS = -L/Users/devolution/Documents/boost_1_60_0/stage/lib -lboost_math_tr1
I_FLAGS = -I/Пользователи/передачи полномочий/Документы/boost_1_60_0/ ALL_OBJECTS = main.o Gaussienne.o Grille.o Сабо. 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_FLAGS?
Вы должны сообщить своему компилятору, где найти этот путь к файлу. Вам нужен соответствующий аргумент '-I' (например, у вас уже есть аргумент' -L'). –
Да, я так и думал, но я вижу, что у многих пользователей ускорения есть папка, содержащаяся в корневой папке boost, странная вещь - я этого не делаю, поэтому я действительно не знаю, что положить внутри -I. Я попытался с помощью '-I/Documents/boost_1_60_0 /' и '-I/Documents/boost_1_60_0/boost', но он не работает – Devolution
Если у вас нет папки' boost' в корне вашего дерева include, это немного (возможно, нет), а затем вы не можете включить его в путь, который вы используете с помощью '# include', или вы создаете каталог (в качестве символической ссылки, если не более того), чтобы вы могли его использовать. –