2012-09-14 14 views
5

Próbuję skompilować plik C++, który korzysta z biblioteki Boost na Mac OSX. Na przykład, patrz poniższy „simple.cpp”Jak określić ścieżkę wyszukiwania nagłówka podczas korzystania z R CMD SHLIB do kompilowania pliku C++?

#include <boost/random.hpp> 
using namesapce boost::math; 

int main(){ 
    boost::mt19937 rng; 
    rng.seed(static_cast<boost::uint32_t> (std::time(0))); 

    return 0; 
} 

Jeśli mogę skompilować plik w powłoce poleceń z

g++ -I/usr/local/boost simple.cpp 

wtedy wszystko jest w porządku. Ale chciałbym zbudować wspólną bibliotekę, dzięki której będę mógł jej użyć, aby przyspieszyć mój projekt R. Jeśli użyję , to raportuje, że nie można znaleźć pliku nagłówkowego. Czy istnieje sposób określenia ścieżki wyszukiwania dla R CMD? Coś jak

R CMD SHLIB -I/usr/local/boost test.cpp 
+0

Istnieje przykład w '? SHLIB'. –

+1

(1) Prawdopodobnie nie powinno być spacji między '<' i 'boost/random.hpp' w linii' # include'. (2) Jeśli musisz podać '-I/usr/local/boost' w wierszu poleceń G ++ (aby nagłówek był zainstalowany jako'/usr/local/boost/boost/random.hpp'), to prawdopodobnie trzeba zrobić to samo dla polecenia R. Alternatywnie G ++ może wyglądać w '/ usr/local/include' automatycznie (a następnie znajduje plik'/usr/local/include/boost/random.hpp'), ale znowu polecenie R tego nie robi (więc musisz dowiedzieć się, jak to zrobić). –

+0

"Jak to zrobić" to ustawienie standardowych zmiennych Make, które R respektuje jak w mojej odpowiedzi poniżej. –

Odpowiedz

Powiązane problemy