簡體   English   中英

通過自制軟件安裝時如何使用boost?

[英]How to use boost when installed via homebrew?

這可能是一個非常基本的問題,但這是我第一次遇到這樣的問題。 我正在使用 M1 macOS Big Sur。 我正在嘗試為我的程序運行 boost 庫。 我已經使用arch -arm64 brew install boost

當我嘗試編譯以下程序時:

#include <boost/multiprecision/cpp_int.hpp>
using namespace boost::multiprecision;
using namespace std;
 
int128_t boost_product(long long A, long long B)
{
    int128_t ans = (int128_t)A * B;
    return ans;
}
 
int main()
{
    long long first = 98745636214564698;
    long long second = 7459874565236544789;
    cout << "Product of " << first << " * " << second
         << " = \n"
         << boost_product(first, second);
    return 0;
}

$ g++ --version
Apple clang version 12.0.5 (clang-1205.0.22.11)
Target: arm64-apple-darwin20.6.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

我收到以下錯誤:

boost.cpp:1:10: fatal error: 'boost/multiprecision/cpp_int.hpp' file not found
#include <boost/multiprecision/cpp_int.hpp>
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.

這是我在 go 進入/opt/homebrew/lib:

cmake                                  libboost_log-mt.dylib                  libboost_serialization.a               libgettextsrc-0.21.dylib
gcc                                    libboost_log.a                         libboost_serialization.dylib           libgettextsrc.dylib
gettext                                libboost_log.dylib                     libboost_stacktrace_addr2line-mt.a     libgmp.10.dylib
libasprintf.0.dylib                    libboost_log_setup-mt.a                libboost_stacktrace_addr2line-mt.dylib libgmp.a
libasprintf.a                          libboost_log_setup-mt.dylib            libboost_stacktrace_addr2line.a        libgmp.dylib
libasprintf.dylib                      libboost_log_setup.a                   libboost_stacktrace_addr2line.dylib    libgmpxx.4.dylib
libboost_atomic-mt.a                   libboost_log_setup.dylib               libboost_stacktrace_basic-mt.a         libgmpxx.a
libboost_atomic-mt.dylib               libboost_math_c99-mt.a                 libboost_stacktrace_basic-mt.dylib     libgmpxx.dylib
...         

當我 cd 進入 cmake 時,我看到有一堆Boost_...前綴文件。

看起來我在我的電腦上有了提升,但是我如何在我的程序中使用它並用 g++ 編譯它?

我發現自制軟件正在向/opt/homebrew/Cellar/boost/1.79.0_1/include/boost添加文件。 確定位置后,我只需使用帶有標志的代碼進行編譯

g++ -I/opt/homebrew/Cellar/boost/1.79.0_1/include/boost...

並確保我的包含語句引用了適當的.hpp 文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM