g ++是GNU编译器集合(gcc)的C ++前端。
我有一个名为 apt-util 的文件夹,其中包含目录中的头文件。当我尝试编译包含这些文件的源代码时,它说: parseFile.C:17:36:错误:apt_util/
我希望编译器(MinGW g++/Linux g++)忽略头文件中的一些定义内容: A类{ 民众: 一个(); 虚拟~A(); 忽略 void methodA(); // = 0 -> 不可能 ...
我有几个.cpp和.hpp文件。我想使用 make 来编译和连接它们。我怎样才能做到这一点? 示例.cpp 示例.hpp 样本_2.cpp 样本_2.hpp 样本_3.cpp 样本_3.hpp ... ...
我试图了解 g++ 如何选择它链接的 libstdc++ 版本,以及当库的“系统”版本不同时这意味着什么。 我正在使用 gcc/g++ 4.1.2,它符合...
可能的重复: C/C++:允许运行时不动态分配的数组大小吗? 我在一个类中,我们有一个简单的作业来编写一个返回指向动态 ar 的指针的函数...
我想确保我正确理解 g++ 文档。 当通过 G++ 处理 C/C++ 程序时,我们通常会进行预处理、编译、汇编和链接。 取决于磨...
-bash: ./prog_name: 没有这样的文件或目录
假设程序名称是algo_graphs.c。 我使用 g++ -m32 -c -g -O3 algo_graps.c 编译它,并假设没有编译器错误。可能是什么原因导致此错误: -bash: ./prog_n...
为什么 std::vector::at 不能在使用范围的 for-each 循环中工作?
这是我尝试在 C++26(我知道,没有发布,但这是我给 gcc 的选项)和 GCC 14.2 中的编译时解析器实现的简化示例。 #包括 #包括 这是我尝试在 C++26(我知道,没有发布,但这是我给 gcc 的选项)和 GCC 14.2 中的编译时解析器实现的简化示例。 #include <iostream> #include <ranges> #include <string_view> #include <vector> using namespace std::string_view_literals; template <class To> inline constexpr auto static_caster = []<class From>(From &&from) -> To requires requires { static_cast<To>(std::declval<From>()); } { return static_cast<To>(std::forward<From>(from)); }; struct Test { bool value; constexpr Test(const std::string_view input) { const std::vector<std::string_view> lines = input | std::views::split('\n') | std::views::transform(static_caster<std::string_view>) | std::ranges::to<std::vector>(); // const std::string_view line = lines.at(0); for (const std::string_view line : lines) { const std::vector<std::string_view> line_tokens = line | std::views::split(' ') | std::views::transform(static_caster<std::string_view>) | std::ranges::to<std::vector>(); const std::string_view kind = line_tokens.at(0); this->value = "v" == kind; } } }; int main(int argc, char *argv[]) { constexpr bool value = Test("v 1.0 2.0 3.0\n"sv).value; std::cout << value; return 0; } 错误信息: In file included from /opt/compiler-explorer/gcc-trunk-20241219/include/c++/15.0.0/vector:68, from <source>:4: /opt/compiler-explorer/gcc-trunk-20241219/include/c++/15.0.0/bits/stl_vector.h: In function 'int main(int, char**)': <source>:33:52: in 'constexpr' expansion of 'Test(std::literals::string_view_literals::operator""sv(((const char*)"v 1.0 2.0 3.0\012"), 14))' <source>:26:57: in 'constexpr' expansion of 'line_tokens.std::vector<std::basic_string_view<char> >::at(0)' /opt/compiler-explorer/gcc-trunk-20241219/include/c++/15.0.0/bits/stl_vector.h:1333:16: in 'constexpr' expansion of '((const std::vector<std::basic_string_view<char> >*)this)->std::vector<std::basic_string_view<char> >::_M_range_check(__n)' /opt/compiler-explorer/gcc-trunk-20241219/include/c++/15.0.0/bits/stl_vector.h:1292:35: error: call to non-'constexpr' function 'void std::__throw_out_of_range_fmt(const char*, ...)' 1292 | __throw_out_of_range_fmt(__N("vector::_M_range_check: __n " | ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1293 | "(which is %zu) >= this->size() " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1294 | "(which is %zu)"), | ~~~~~~~~~~~~~~~~~~ 1295 | __n, this->size()); | ~~~~~~~~~~~~~~~~~~ In file included from /opt/compiler-explorer/gcc-trunk-20241219/include/c++/15.0.0/bits/new_allocator.h:35, from /opt/compiler-explorer/gcc-trunk-20241219/include/c++/15.0.0/x86_64-linux-gnu/bits/c++allocator.h:33, from /opt/compiler-explorer/gcc-trunk-20241219/include/c++/15.0.0/bits/allocator.h:46, from /opt/compiler-explorer/gcc-trunk-20241219/include/c++/15.0.0/string:45, from /opt/compiler-explorer/gcc-trunk-20241219/include/c++/15.0.0/bits/locale_classes.h:42, from /opt/compiler-explorer/gcc-trunk-20241219/include/c++/15.0.0/bits/ios_base.h:43, from /opt/compiler-explorer/gcc-trunk-20241219/include/c++/15.0.0/ios:46, from /opt/compiler-explorer/gcc-trunk-20241219/include/c++/15.0.0/ostream:42, from /opt/compiler-explorer/gcc-trunk-20241219/include/c++/15.0.0/iostream:43, from <source>:1: /opt/compiler-explorer/gcc-trunk-20241219/include/c++/15.0.0/bits/functexcept.h:82:3: note: 'void std::__throw_out_of_range_fmt(const char*, ...)' declared here 82 | __throw_out_of_range_fmt(const char*, ...) __attribute__((__noreturn__,__cold__)) | ^~~~~~~~~~~~~~~~~~~~~~~~ 这个示例不起作用,但是带有内部 for 循环的示例仅将其内容与索引 0 处的固定行一起使用。 有趣的是,当我从常量中删除 \n 时,它就起作用了。 问题是为什么以及如何解决这个问题? 这个问题与花哨的 c++26 东西无关,它是一个简单(但很容易错过)的错误。如果您以 \n 结尾并在 \n 上拆分,您将得到一个空行。该空行将包含一个空标记。并且空字符串没有“第 0”元素。如果彼此之间有两个空格,也会出现该错误。 要解决此问题,您可以在转换为 std::views::filter([](auto&& x){return !x.empty();}) | 之前在两个循环中添加 vector 以过滤掉空字符串,因为它们不是标记。
如果我像这样定义比较函数: bool 比较(学生& a, 学生& b) { 返回 a.n < b.n; } g++ will complain: g++ -Wall main.cpp -o main In file included from /usr/lib/...
以下代码在没有任何优化标志的情况下与没有任何优化标志的情况下编译时给出了截然不同的结果: #包括 #包括 // __uin 的尾随零计数...
我试图弄清楚如何制作一个使用 g++ 编译书面代码的程序,并通过示例测试它是否运行良好。 程序中会有一个文本框,您可以在其中输入代码(解决方案)。 ...
“未定义的架构 i386 符号”链接 .a 库的 Objective C++ 错误
我导入了一个在ubuntu环境下用arm标志由g++编译的库文件(.a)。 我也尝试过编译器llvm。我创建了一个 Objective C++ 项目并想使用这个库。 我用的是xcode com...
这个问题已被问过并回答过很多次,但似乎没有一个答案对我有用。 我一直在尝试在 nvim lsp 中设置 clangd 。 我用 bear 生成compile_commands...
我习惯了本地IDE界面,集成了代码编辑器和编译器。但是,我想测试代码是否可以在 Unix 服务器上使用远程编译器正常编译。我厌倦了复制我的
我在 Windows 7 上使用 Dev C++ 和 WinPcap(开发人员包)。 Dev c++ 显然无法找到 pcap.h,即使我在项目选项中包含 /include/ 目录,但在编译时它会...
为什么 typeid.name() 使用 GCC 返回奇怪的字符以及如何让它打印未损坏的名称?
为什么当我运行这个main.cpp时: #包括 #包括 使用命名空间 std; 结构布拉赫{}; int main() { 计算<< typeid(Blah).name() << endl; ret...
我正在尝试学习Makefile。我已经完成了一些可行的小项目,但现在我正在扩展它,但没有运气。这是问题所在。我正在尝试编译子目录中的所有文件,然后
这是一个愚蠢的问题,还是我可以指定 g++ 在预处理器和编译器之间使用程序? 或者,我知道我可以只在文件上运行预处理器(因此是所有文件)。 ...
在业余时间,我正在和一些朋友做一些逆向工程游戏,我想知道如何尽可能地防止asm可读性。我不想“阻止”逆转