Mac OS 下g c 編譯工具無法使用

2021-07-01 20:33:54 字數 1684 閱讀 9680

最近在mac os上做c++ 開發,卻遇到乙個讓人難以費解的問題。g++工具無法編譯c++原始碼,提示找不到__debug檔案(這個檔案我也不知道是做什麼用的,有知道的希望各位高手們能指點一下)。其實原始碼很簡單,就是簡單的hell world。

#include

using namespace std;

int main(){

cout << "hello world!" << endl;

return 0;

kevindemacbook-air:namespace kevin$ g++ hello.cpp

in file included from hello.cpp:1:

in file included from /library/developer/commandlinetools/usr/bin/../include/c++/v1/iostream:38:

in file included from /library/developer/commandlinetools/usr/bin/../include/c++/v1/ios:216:

in file included from /library/developer/commandlinetools/usr/bin/../include/c++/v1/__locale:15:

in file included from /library/developer/commandlinetools/usr/bin/../include/c++/v1/string:439:

in file included from /library/developer/commandlinetools/usr/bin/../include/c++/v1/algorithm:628:

in file included from /library/developer/commandlinetools/usr/bin/../include/c++/v1/memory:604:

/library/developer/commandlinetools/usr/bin/../include/c++/v1/iterator:341:10: fatal error: '__debug' file not found

#include <__debug>

^1 error generated.

發現上述問題後,baidu了the question,但是沒有結果。然後在google上找到了乙個湊效的解決方法(但作者沒有說明解決的緣由)

kevindemacbook-air:namespace kevin$

echo '#define _libcpp_assert(x, m) ((void)0)' | sudo tee -a /library/developer/commandlinetools/usr/include/c++/v1/__debug > /dev/null

password:

kevindemacbook-air:namespace kevin$ g++ hello.cpp

kevindemacbook-air:namespace kevin$ ./a.out

hello world!

感覺作者是建立了乙個__debug 檔案並在其中寫入了相應的內容,但是如果是這樣的話,那g++工具在安裝的時候就沒有這個檔案嗎?實在不明白怎麼回事。 這裡只把一種解決方法貼出來,希望能幫到跟我一樣的人。如果有人知道這個方法的原理,煩請告知,不勝感激

公升級MacOS導致WebRTC無法編譯

macos公升級至big sur以後需要重新生成gn檔案,遇到如下問題。經過排除是因為find sdk.py這個檔案只會找10的系統。通過命令xcrun show sdk version可以知道當前sdk的版本 修改.gn檔案的mac sdk min選項為當前系統版本 11.0開啟find sdk....

Mac OS 下編譯安裝Lammps

homebrew裡面有直接可安裝的lammps,但是使用的都是預設 引數。為了使用新的特性,這裡選擇使用gcc49 和mpich3編譯安裝之。macport安裝gcc49 並設定其為預設編譯器 b.編譯 以及 安裝 參見readme 注意 一定要把homebrew裡面安裝的 openmpi 給刪除了...

MAC OS下Wireshark原始碼編譯安裝

1.背景 此次由於專案需要利用wireshark進行二次開發,因此必須原始碼編譯安裝 由於本人在mac os環境的編譯安裝遇到很多問題,然後一一解決,因此在這裡說明我的安裝步驟 2.安裝編譯步驟 2 將原始碼解壓,重新命名資料夾名稱 wireshark xz d wireshark 2.4.5.ta...