问题标签 [gcc5]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
926 浏览

c++11 - gtkmm 对某些 gtk::builder 函数 add_from_file 的未定义引用

我正在使用 eclipse、mingw-w64、gtkmm2.4、glade 编译一些简单的程序。

我可以按照教程编译 hello world gtkmm 示例,但是当涉及到 glade 时出现了一些奇怪的未定义错误。

编译运行流畅的程序,即 gtkmm 2.24 简单示例教程https://developer.gnome.org/gtkmm-tutorial/2.24/sec-basics-simple-example.html.en

但是,当我尝试运行 glade 章节(24.2.1)中的另一个简单示例时,事情并没有成功。

https://developer.gnome.org/gtkmm-tutorial/2.24/sec-builder-accessing-widgets.html.en 示例:

编译时出现如下错误 test.cpp:(.text.startup+0x281): undefined reference to Gtk::Builder::add_from_file(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'

似乎将参数“something.glade”作为类型std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&(我不知道它是什么)。

根据 gtkmm 手册(https:developer.gnome.org/gtkmm/stable/classGtk_1_1Builder.html#aa3f4af4e7eaf7861c8283dc0dbd5254c)似乎只需要Gtk::Builder::add_from_file(const std::string & filename). 那么参数类型真的有问题吗?

我尝试通过执行std::string()or将其转换为 std::string string(),但它给出了相同的错误。

我试过注释掉有问题的行,它编译得很好。

  • Gtk::Builder::create()没有收到未定义的编译错误引用
  • refBuilder->get_widget("window1", window);没有收到未定义的编译错误引用

所以现在我一直在摸索这个似乎微不足道的问题。请提供一些帮助。

了解更多信息

  • pkg-config --cflags --libsyielded -IE:/gtkmm64/include/gtkmm-2.4 -IE:/gtkmm64/lib/gtkmm-2.4/include -IE:/gtkmm64/include/atkmm-1.6 -IE:/gtkmm64/include/giomm-2.4 -IE:/gtkmm64/lib/giomm-2.4/include -IE:/gtkmm64/include/pangomm-1.4 -IE:/gtkmm64/lib/pangomm-1.4/include -IE:/gtkmm64/include/gtk-2.0 -IE:/gtkmm64/include/gdkmm-2.4 -IE:/gtkmm64/lib/gdkmm-2.4/include -IE:/gtkmm64/include/atk-1.0 -IE:/gtkmm64/include/glibmm-2.4 -IE:/gtkmm64/lib/glibmm-2.4/include -IE:/gtkmm64/include/glib-2.0 -IE:/gtkmm64/lib/glib-2.0/include -IE:/gtkmm64/include/sigc++-2.0 -IE:/gtkmm64/lib/sigc++-2.0/include -IE:/gtkmm64/include/cairomm-1.0 -IE:/gtkmm64/lib/cairomm-1.0/include -IE:/gtkmm64/include/pango-1.0 -IE:/gtkmm64/include/cairo -IE:/gtkmm64/include -IE:/gtkmm64/include/freetype2 -IE:/gtkmm64/include/libpng14 -IE:/gtkmm64/lib/gtk-2.0/include -IE:/gtkmm64/include/gdk-pixbuf-2.0 -LE:/gtkmm64/lib -lgtkmm-2.4 -latkmm-1.6 -lgdkmm-2.4 -lgiomm-2.4 -lpangomm-1.4 -lgtk-win32-2.0 -lglibmm-2.4 -lcairomm-1.0 -lsigc-2.0 -lgdk-win32-2.0 -latk-1.0 -lgio-2.0 -lpangowin32-1.0 -lgdi32 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lpng14 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lglib-2.0 -lintl,我已将其包含在项目中
  • pkg-config --modversion gtkmm2.4产生了 2.22.0,所以我怀疑它与 add_from_file() 的 2.14 要求有什么关系
  • pkg-config --modversion gtk+2.0产生 2.22.0
  • 我没有使用任何标志,例如--std=c++xx.
  • 视窗 8 64 位
0 投票
1 回答
537 浏览

linux - 在 Linux Mint LMDE 2 中安装 GCC5

我是 Linux 新手,我想卸载安装在我的发行版 Linux Mint LMDE 2 中的 gcc 4.9 并安装 gcc 5。我尝试使用以下命令:

但它没有奏效。有人可以帮我吗?请提供所有要遵循的步骤。先感谢您

0 投票
1 回答
140 浏览

c++ - 为什么在循环之前将 const& 标量值分配给 const 会有所帮助?

在 GCC 5.4.0 中stl_algobase.h,我们有:

我不明白为什么标量的变体比一般变体有任何优势。我的意思是,它们不会被编译成完全相同的东西吗?将堆栈中的加载__value到寄存器中并在整个循环中使用该寄存器?

0 投票
1 回答
132 浏览

gcc - `-march` 和指令集开关之间会不会有冲突?

我正在使用以下命令编译示例程序:

问题:

  1. 为什么 GCC 不抱怨启用 MMX、SSE4 和 3DNow 的开关!与所选架构 i386 不兼容?
  2. 编译器是否生成无法在 i386 上运行的可执行文件?
0 投票
0 回答
403 浏览

c - 误解C switch 语句还是gcc bug?

使用 GCC 4.4.7 和 LLVM 6.1 编译时,以下代码似乎可以正确执行。但我认为它不能正确编译 gcc 版本 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)。

以下是我将问题简化为:

如果我编译它: gcc -O0 -g -Wall -Werror sillyswitch.c -o sillyswitch

它会打印

这是我期望它打印的

但是,如果我使用以下命令编译它: gcc -O -g -Wall -Werror sillyswitch.c -o sillyswitch

它会打印

这不是我期望看到的。

我不明白为什么打开优化后它不能按预期工作。代码错误是因为在第二个循环中采用的 switch 语句的分支是任意的吗?因为它是C,我是否以某种方式射中了自己的脚?

完整输出失败:

成功完整输出:

0 投票
1 回答
2025 浏览

c++ - GCC 6.2.0 的 CXX11 未定义引用

我们已经在一台 Scientific Linux 机器上手动安装了 GCC 6.2.0。C++ 应用程序的编译似乎很好,但我们undefined references在链接时得到了很多 CXX11

我们知道双重 ABI 问题,但编译-D_GLIBCXX_USE_CXX11_ABI=0没有任何区别。我们还有哪些其他选择?

更新

CMAKE配置如下:

这是编译行file.cpp

和链接(实际上失败的地方)

此外,MPICH 3.2 已使用新编译器 (gcc 6.2.0) 构建

0 投票
1 回答
166 浏览

gcc - wxWidgets 已弃用的构造函数

我正在尝试使用 wxWidgets 3.0 库编译以下代码:

foo.h

foo.cpp

文件wx/menuitem.h 代码中定义的构造函数:

使用 gcc 5.4.0、Ubuntu 16.04 x86_64 编译:

我该如何解决?

0 投票
1 回答
3193 浏览

c++ - 错误:“log2”不是“std”的成员

我不确定我在这里看到了什么。下面的测试结果来自运行 OS X 10.5.8 的旧 PowerMac G5。它仍然可以在大端 PowerPC cpu 下进行测试。编译器是 GCC 5.4,它由 MacPorts 提供。

测试程序如下。编译它会导致错误error: 'log2' is not a member of 'std'

根据是 std::log2() 是扩展还是 C++ 标准?,std::log2应该可用。

为什么程序编译失败?



这可能与旧硬件有关:C++11 cmath 函数不在 std 命名空间中,用于 android NDK w/gcc-4.8 或 clang 3.4。我意识到 Android 是一个不同的平台。


现在在 MacPorts 问题跟踪器中打开:Issue 53226: PowerMac, GCC 5.4 and "error: 'std::log2' has not been declared"

现在在 GCC 问题跟踪器中打开:Issue 79017: Old PowerMac G5, MacPorts GCC 5.4, C++11 and "std::log2 has not been declared"

0 投票
1 回答
627 浏览

c - 我的 fma() 坏了吗?

在使用时,我希望下面标有 的输出行中double fma(double x, double y, double z);的非零值。它似乎在内部仅使用精度而不是指定的无限精度d'?'long double

fma函数 compute ( x× y) + ,作为一个三元运算四舍五入:它们根据当前的舍入模式将值(好像)计算为无限精度并舍入一次到结果z格式§7.12.13.1 2(我的重点)

我的fma()坏了,或者我如何在代码或编译选项中错误地使用它?

输出

版本信息

0 投票
1 回答
165 浏览

c - 使用gcc而不是clang在for循环错误中分配结构

您好,我在gcc使用以下命令编译的 C11 程序上收到此警告(版本 5.4.0):

但没有clang(版本 3.8.0):

我在 Ubuntu 16.04 上。

这是代码

这里的定义str_slice

以及使用它的功能:

如有必要,有关的代码build_full_path

使用 clang 编译时,我得到了一个具有良好行为的可执行文件。所以我做错了什么?还是我发现了一个错误?

这里是我的程序的完整代码(过时):https ://gist.github.com/darnuria/12af88c509310c2b40e0031522882720

编辑:使用 ofmemcpy而不是strncpy. 删除标量类型的 const。