- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Linux 桌面应用程序的 flutter run
上出现此错误
Running "flutter pub get" in proj... 5.3s
Launching lib/main.dart on Linux in debug mode...
CMake Error at /usr/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake:62 (message):
The C++ compiler
"/usr/bin/clang++"
is not able to compile a simple test program.
It fails with the following output:
Change Dir: /media/kingbob/Dvolve/EData/proj/build/linux/x64/debug/CMakeFiles/CMakeTmp
Run Build Command(s):/usr/bin/ninja cmTC_5f1b6 && [1/2] Building CXX object CMakeFiles/cmTC_5f1b6.dir/testCXXCompiler.cxx.o
[2/2] Linking CXX executable cmTC_5f1b6
FAILED: cmTC_5f1b6
: && /usr/bin/clang++ CMakeFiles/cmTC_5f1b6.dir/testCXXCompiler.cxx.o -o cmTC_5f1b6 && :
/usr/bin/ld: cannot find -lstdc++: No such file or directory
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.
CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
CMakeLists.txt:2 (project)
Building Linux application...
Exception: Unable to generate build files
flutter doctor的输出
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.3.8, on Ubuntu 22.04.1 LTS 5.15.0-53-generic, locale en_IN)
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
[✓] Chrome - develop for the web
[✓] Linux toolchain - develop for Linux desktop
[✓] Android Studio (version 2021.3)
[✓] Connected device (2 available)
[✓] HTTP Host Availability
• No issues found!
clang++ --version 的输出
Ubuntu clang version 14.0.0-1ubuntu1
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
我注意到 /usr/lib/libstdc++.so
不见了,所以手动创建了一个符号链接(symbolic link)sudo ln -s/usr/lib/x86_64-linux-gnu/libstdc++.so.6/usr/lib/libstdc++.so
.
然后我在 flutter run
上遇到了这个错误
Launching lib/main.dart on Linux in debug mode...
/usr/include/glib-2.0/glib/glib-typeof.h:39:10: fatal error: 'type_traits' file not found
/usr/include/glib-2.0/glib/glib-typeof.h:39:10: fatal error: 'type_traits' file not found
/usr/include/glib-2.0/glib/glib-typeof.h:39:10: fatal error: 'type_traits' file not found
/usr/include/glib-2.0/glib/glib-typeof.h:39:10: fatal error: 'type_traits' file not found
/usr/include/glib-2.0/glib/glib-typeof.h:39:10: fatal error: 'type_traits' file not found
/usr/include/glib-2.0/glib/glib-typeof.h:39:10: fatal error: 'type_traits' file not found
最佳答案
我在升级系统后遇到了类似的问题。过了一会儿,我意识到这是因为 nvidia-driver-520-open
安装gcc-12
.我用 clang-15
我用脚本安装的 installClang15.sh . clang-15
依赖并因此安装 libstdc++-11-dev
和 gcc-11
.问题是一旦gcc-12
已安装,clang++
自动拾取它而不是 gcc-11
.这可以通过 clang++ --verbose
确认输出类似
Ubuntu clang version 15.0.6
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/local/bin
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/11
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/12
Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/12
Candidate multilib: .;@m64
Selected multilib: .;@m64
libstdc++-12-dev
感谢 this GitHub comment,我想到了这个解决方案.这是最简单的解决方案,但它有一些缺点。在 Ubuntu 上,您可以使用
安装软件包sudo apt install libstdc++-12-dev
我面临的缺点是:
nvidia-driver-520-open
需要 gcc-13
?我将不得不再次弄清楚为什么会出现此错误,然后安装 libstdc++-13-dev
,这可能需要再次更新一些代码。clang++
的 gcc 安装使用我没有找到任何干净简单的方法来做到这一点,但有一些方法。 clang-16
,截至 2022 年 11 月 28 日尚未发布,但在 building clang 时可用, 有一个新选项 --gcc-install-dir
描述 here .这修复了编译:
$HOME/src/llvm-project/staging/bin/clang++ --gcc-install-dir=/usr/lib/gcc/x86_64-linux-gnu/11 a.cpp
哪里a.cpp
是一个普通的 C++ “Hello World!”程序
#include <iostream>
int main() { std::cout << "Hello World!" << std::endl; }
旧版本 clang
有选项 --gcc-toolchain
,由于描述的原因,它不是很有用 on llvm's discourse .不过,你还是可以别出心裁,为所欲为this Stack Overflow answer建议。 TL;DR 是
sudo mkdir --parents /opt/gcc-root/lib/gcc/x86_64-linux-gnu
sudo ln --symbolic /usr/lib/gcc/x86_64-linux-gnu/11 /opt/gcc-root/lib/gcc/x86_64-linux-gnu/11
sudo ln --symbolic /usr/include /opt/gcc-root/
ln --symbolic /usr/include /opt/gcc-root/
很重要,否则我遇到了增量构建的问题。然后,你应该能够编译
clang++ --gcc-toolchain=/opt/gcc-root a.cpp
这留下了一个悬而未决的问题:“我如何在系统范围内集成这个编译器选项?”我在这里没有找到任何令人满意的答案。
export CCC_OVERRIDE_OPTIONS=^--gcc-toolchain=/opt/gcc-root
如所述here并记录在案 on GitHub .这可能是针对此问题的最佳解决方案。clang++
的 shell 脚本包含 #!/usr/bin/env bash
/usr/local/bin/clang++ --gcc-toolchain=/opt/gcc-root "$@"
然后使用 export CXX=<PATH_TO_SCRIPT>/clang++
.这在实践中工作得很好:这是我快速而肮脏的修复。但是,我担心工具链中的其他工具(如 clang-tidy
或 clangd
)如果未通过选项 --gcc-toolchain
可能会出现问题。 .根据您的设置方式,他们可能看不到该选项,因为它不在文件 compile_commands.json
中。使用 CMAKE_EXPORT_COMPILE_COMMANDS
CMake variable 创建.clang++
例如,fixed-gcc-root-clang++
, 然后你创建一个文件 fixed-gcc-root-clang++.cfg
在适当的位置(对于 clang-15
,它是 /usr/lib/llvm-15/bin
)包含选项 --gcc-toolchain=/opt/gcc-root
.最后,您使用 export CXX=fixed-gcc-root-clang++
.一个问题是,如果某人或某物(例如 IDE)使用 clang++
直接,您的配置文件将不会被读取。如果指向 fixed-gcc-root-clang++
的新符号链接(symbolic link),您也会遇到问题被创建,例如 c++ -> fixed-gcc-root-clang++
, 因为在这种情况下,不会读取配置文件。nvidia-driver-520-open
安装了一个新的传递依赖项)在 C++ 构建系统中找到了解决方案。因此,the separation of concerns不尊重原则。关于ubuntu - "/usr/bin/ld: cannot find -lstdc++: No such file or directory"正在运行 flutter linux 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74543715/
调用编译器标志“-lstdc++”会调用哪些标准?与“-lstdc++11”一样,c++11 标准被调用,同样可以被“-std=c++11”调用。 最佳答案 -l 标志不会改变标准一致性,它用于指定要
当我尝试在Linux上打开应用程序时,它崩溃并显示以下行: /usr/bin/ld: cannot find -lstdc++ clang: error: linker command failed
我在我的应用程序中使用openCV2.framework。它可以在模拟器中正常运行,但不能针对iOS设备进行编译。它得到以下错误 ld: library not found for -lstdc++
我试图将编译分解为这四个步骤,但最后一个步骤对我来说似乎有问题。 cpp hello.cpp > hello.i g++ -S hello.i as -o hello.o hello.s ld -o
安answer to this question让我意识到我需要将 -lstdc++ 添加到我的“其他链接器标志”中才能编译我的项目。 如果我将我的代码直接编译到我的项目中,它运行良好。如果我将它构建
有几个关于获取 experimental/filesystem 的问题在最新版本的 GCC 和 Clang 中编译:experimental::filesystem linker error 但是现在
我正在尝试使用其他人的 Makefile 来编译一个非常简单的 C++ 库。生成文件如下: JNIFLAGS=-O2 -pthread -I/usr/lib/jvm/java-6-sun/includ
这是我的错误 make cc msgd.o -o msgd msgd.o: In function `main': /home/cam/Desktop/lab1/msgd.cc:37: und
我正在尝试构建 wxFormBuilder_v3.5.0-beta-source。它带有一个用于创建构建文件的 shell 文件,但它一直卡在以下错误中: ==== Building Premake4
g++和gcc -lstdc++有区别吗? 也就是说,g++就是默认链接了C++标准库的gcc吗? 最佳答案 g++ 是一个编译器,类似于 gcc。然而,g++ 包括解析现代 C++ 构造的能力,而
将 Xcode 版本更新到 10.0 beta 后,开始出现“ld: library not found for -lstdc++.6”错误。相同的代码在 Xcode 9.2 中运行良好 还将 mac
这是在命令行中工作的 c++ filesystem 上的演示 filesystem-testing.cpp: 环境:gcc/5.5.0 #include #include #include in
我正在尝试编译一个使用 std::filesystem 的应用程序。我使用 CMake 作为构建系统,使用 g++-8 作为编译器。 我的 CMakeLists.txt 包括 target_link_
我在 64 位系统上有 32 位库,所以在使用 32 位库编译我的代码时,我通过了 -m32 但这会导致另一个错误提示 /usr/bin/ld: skipping incompatible /usr/
我正在尝试将 Python 库包装在 C++ 库周围,而 distutils 在 OS X 上对我来说失败了。以下是我的 setup.py 中的相关行: if sys.platform.startsw
尝试在 MacOS 上安装 python 依赖项时遇到构建错误。 clang: warning: libstdc++ is deprecated; move to libc++ with a
我正在关注 Matlab编码器kalman教程在 Matlab帮助。使用时 codegen ,出现如下错误: /usr/bin/ld: cannot find -lstdc++ collect2: l
我在尝试使用 Xcode 10 在 iOS 上使用“IBMMobileFirstPlatformFoundation”的 pod 安装运行应用程序时收到错误 ld: library not found
在尝试使用当前的 GCC 在 C++ 中使用一些新的/实验性的东西时,我遇到了链接错误。好像类似question已发布,但仍然出现错误。 有人可以解释一下我在这里做错了什么/哪里错了吗?。希望我已经提
ld: library not found for -lstdc++.6 clang: error: linker command failed with exit code 1 (use -v to
我是一名优秀的程序员,十分优秀!