簡體   English   中英

如何使用<execution> c++17 中的庫</execution>

[英]How to use <execution> library in c++17

學習如何使用 c++17 中的執行庫。 我正在使用 Linux,但也在我的 Mac 上嘗試過。 我收到此錯誤:

致命錯誤:找不到“執行”文件

當我在兩個操作系統中編譯時。

我寧願堅持使用 linux 我輸入:

g++ -g -std=c++17 ModuleDevelopmentStage13.cc -lboost_system -lboost_thread -pthread

也許我需要在-l.... arguments 中添加更多庫。 我是 c++ 的新手,不知道在哪里可以找到要添加的內容? 我已經安裝了 LLVM 並在類似的帖子上嘗試了一些選項,但沒有運氣。 有什么建議嗎?

所以在我的mac上我做了 gcc -v 並得到:

gcc -v Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/c++/4.2.1 Apple LLVM version 10.0.0 (clang-1000.11.45.5) Target: x86_64-apple-darwin18.6.0 Thread model: posix InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

好的,所以更新-我現在切換到通過自制軟件安裝的 gcc-9.1。

沒有像以前一樣的“包含”錯誤,但是當我嘗試編譯使用 c++17 庫的簡單代碼示例時,我現在遇到了這個問題:

g++-9 -std=c++17 example.cc In file included from /usr/local/Cellar/gcc/9.1.0/include/c++/9.1.0/pstl/parallel_backend.h:14, from /usr/local/Cellar/gcc/9.1.0/include/c++/9.1.0/pstl/algorithm_impl.h:25, from /usr/local/Cellar/gcc/9.1.0/include/c++/9.1.0/pstl/glue_execution_defs.h:52, from /usr/local/Cellar/gcc/9.1.0/include/c++/9.1.0/execution:3, from example.cc:6: /usr/local/Cellar/gcc/9.1.0/include/c++/9.1.0/pstl/parallel_backend_tbb.h:19:10 fatal error: tbb/blocked_range.h: No such file or directory 19 | #include <tbb/blocked_range.h> | ^~~~~~~~~~~~~~~~~~~~~ compilation terminated.

我找到了丟失的庫並編譯如下:

g++-9 -std=c++17 example.cpp -I/usr/local/Cellar/tbb/2019_U8/include/ -I/usr/local/Cellar/tbb/2019_U8/lib/

我收到以下錯誤: Undefined symbols for architecture x86_64: "tbb::interface7::internal::task_arena_base::internal_current_slot()", referenced from: tbb::interface7::task_arena::current_thread_index() in ccnPixdL.o "tbb::interface7::internal::isolate_within_arena(t..........

其次是許多類似的行......感覺我更接近但不知道如何繼續這一行?

g++-9 -std=c++17 example.cpp -I/usr/local/Cellar/tbb/2019_U8/include/ -L/usr/local/Cellar/tbb/2019_U8/lib/ -ltbb

您需要安裝 tbb 庫。

在 Ubuntu/Linux 上:

$ sudo apt update
$ sudo apt install libtbb-dev

在帶有 Homebrew 的 Mac 上:

$ brew install tbb

然后在 g++ 中鏈接運行時庫:

g++ -g -std=c++17 ModuleDevelopmentStage13.cc -lboost_system -lboost_thread -pthread -ltbb

您可能會發現查看以下說明很有用:

https://solarianprogrammer.com/2019/05/09/cpp-17-stl-parallel-algorithms-gcc-intel-tbb-linux-macos/

我建議一對一地復制示例,然后一旦運行它,您就可以進行調整以適應您的用例

暫無
暫無

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

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