gunjjoshi's blog

By gunjjoshi, history, 10 months ago, In English

Are you facing issues compiling specific headers like <ext/pb_ds/assoc_container.hpp> and <ext/pb_ds/tree_policy.hpp> using the default compiler (clang) on your Mac?

I faced the same issue while solving 1915F - Приветствия, where I wanted to use ordered_set.

Here's a step-by-step guide to switch to g++-13 and configure your IDE (in this case, VS Code) for successful compilation:

Step 1: Install and Set Up g++-13

Install g++-13 (or latest version):
    Open Terminal.
    Use Homebrew to install g++-13: `brew install gcc@13`.

Verify Installation:
    Type `g++-13 --version` in Terminal to ensure successful installation.

Update Terminal Configuration for g++-13:
    Open the .bashrc or .bash_profile file in Terminal using a text editor like nano or vim: `nano ~/.bashrc` (or `nano ~/.bash_profile`).
    Add the following line at the end of the file:

   `export PATH=/usr/local/bin:$PATH`

    Save the changes and apply them by either restarting Terminal or running `source ~/.bashrc` (or `source ~/.bash_profile`).

Step 2: Configure IDE (VS Code)

Open VS Code:
    Launch your Visual Studio Code editor.

Install Required Extensions:
    If not installed, get the C/C++ extension for VS Code.

Change Compiler Path:
    Access VS Code settings/preferences.
    Search for "C/C++: Default Compiler Path" setting.
    Modify the path to point to g++-13 installed via Homebrew (/usr/local/bin/g++-13).

Adjust Intellisense Mode:
    Look for the setting related to Intellisense or Language Server.
    Change the mode to macos-gcc-arm64.

Step 3: Restart and Test

Restart VS Code:
    Close and reopen Visual Studio Code.

Restart Terminal:
    Close and reopen Terminal for the changes to take effect.

Compile and Test:
    Open your C++ project in VS Code.
    Compile the code that includes <ext/pb_ds/assoc_container.hpp> and <ext/pb_ds/tree_policy.hpp>.
    Verify that the compilation is successful without any errors.

By following these steps, you should now be able to compile the problematic headers using g++-13 within VS Code on your MacOS environment. Updating the terminal's configuration ensures that the system knows where to find the g++-13 compiler when invoked from the Terminal, complementing the changes made within VS Code settings for a seamless integration of the updated compiler.

Full text and comments »

  • Vote: I like it
  • +3
  • Vote: I do not like it