-
Notifications
You must be signed in to change notification settings - Fork 42
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Missing C++ Standard Library Headers When Building Wheels On Mac #409
Comments
Hi @pb-dod, apologies this took so long. We've made a lot of improvements to the CLI since this issue was opened. Is this still an issue? |
@thomasrockhu-codecov yes, we're still having issues with this and we've learned that clang 16.0.0 is a hard requirement if it needs to build from source on MacOS:
Have also learned sometimes there's an additional step to updating the xcode CLI tools (sometimes it's pointing to the wrong path of the old version still and that needs to be reset):
Maybe there needs to be a note about this here?: https://github.com/codecov/codecov-cli?tab=readme-ov-file#dependencies |
@pb-dod thanks for the reply back! I'll take a look into adding this in, thanks for finding that |
Actually clang version isn't all you need to know, because it also matters which CommandLineTools SDK version you're using. 15.2 seems to work for sure, but 14.5 does not and will throw errors while compiling. You can check this with:
And by seeing which SDK that's symlinked to here (15.2 in this case):
We had one dev who had an app called "xcodes" for switching xcode versions and it made
And he had to change the xcode version in xcodes to get it to use the more recent SDK. |
Description
I've encountered a build failure on MacOS when attempting to
pip install codecov-cli
, which compiles these C++ components due to the lack of a pre-built wheel: https://github.com/codecov/codecov-cli/blob/v0.5.0/setup.py#L34-L54The specific error indicates that the
<vector>
header file from the C++ Standard Library cannot be found, along with other C++ specific dependencies.Error Details
The error message received during the wheel build process is as follows:
This suggests that the build environment is not correctly configured to locate the C++ standard library headers required for compilation.
Environment
OS: MacOS
This setup seems to work:
Here's an example of a broken setup (no mention of
c++
):Steps to Reproduce
pip install codecov-cli
from a machine without a version of CommandLineTools that includes the required C++ dependencies .<vector>
header.Resolution Steps
I performed the following steps to resolve the issue:
Completely removed the existing Command Line Tools using the command:
Reinstalled the Command Line Tools by invoking:
The fresh installation of the Command Line Tools seems to include the necessary C++ compiler and standard library headers.
Question
Is there any easier way to prevent this issue without requiring a reinstall of xcode Command Line Tools?
Do I need to start enforcing a minimum version of xcode on developer machines? Or is there work in progress to get a working wheel file?
In setup.py, should the
language='c++'
be set for the Extension to explicitly require a working C++ compiler?The text was updated successfully, but these errors were encountered: