前提
macOS Catalina
バージョン 10.15.6
問題
Visual Sudio Code で C++ の stdc++.h を読み込みたいが、エラーになる
← 競技プログラミングで必要なライブラリのincludeを一括で行いたいためです
詳細
こちら を参考に
gcc動作環境を整え、visual studio codeからc++のコンパイル&実行を行おうとしています。
stdc++.h を読み込むために行った内容は次の通りです。
gccをインストールした際に得られたstdc++.hをコンパイラが認識出来るよう/usr/local/include/bits にコピーします。
そして、 #include <bits/stdc++.h> が認識されるよう c_cpp_properties.json にて下記修正を行いました。
"includePath": [ "${workspaceFolder}/**", "/usr/local/include/**" ],
その結果下記のようなエラーが生じているのですが、原因がわからない状態です。
[Done] exited with code=1 in 0.092 seconds [Running] cd "/Users/yoki/Desktop/Yoki_Develop/atCoder/" && g++ test.cpp -o test && "/Users/yoki/Desktop/Yoki_Develop/atCoder/"test In file included from /usr/local/Cellar/gcc/9.2.0_1/include/c++/9.2.0/x86_64-apple-darwin18/bits/stdc++.h:33, from test.cpp:1: /usr/local/Cellar/gcc/9.2.0_1/include/c++/9.2.0/cassert:44:10: fatal error: assert.h: No such file or directory 44 | #include <assert.h> | ^~~~~~~~~~ compilation terminated. [Done] exited with code=1 in 0.162 seconds
assert.h というファイルをfindで探してみたのですが、見つからず。
アドバイス等頂けると幸いです。
(追記)
gcc --version 実行時は下記出力となっています。
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/4.2.1 Apple clang version 11.0.3 (clang-1103.0.32.62) Target: x86_64-apple-darwin19.6.0 Thread model: posix InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
なぜstdc++.h を読みたいのかな?
MACのgccは、clangだと思いましたが?
それとも、参照先にあるように、新たにgccをインストールして使えるようにしたのでしょか?
gcc --versionで確かめましょう。
「追記」(clang-1103.0.32.62)・・・gccではなくclangですね。
・・・個人的には、(なにがインクルードされるか分からないので)stdc++.hは使いませんが・・・そもそも、入れてないw
早速のご返答ありがとうございます。
* stdc++.h を読みたい理由
* gcc --version の設定状況
を追記しました。
assert.hはC言語標準のインクルードファイルです。通常(Linuxでは)/usr/include/配下に有ります。
・・・macでも無いのはおかしい?
それとは別ですが、assertマクロ使ってますか?
・・・使ってなければ、必要なヘッダだけインクルードすれば?
あと、コンパイル時に -v オプションを付けるとインクルードパスが表示されます。