g++相关内容
我只使用特定于 C++ 的头文件(例如 ),但是我仍然得到全局声明的函数,而不仅仅是 std 中的函数命名空间.有没有办法(也许是编译器开关)来防止这种情况发生? 例如下面的代码: #include 浮动随机(){返回0.0f;}int main() { 返回 0;} linux下编译失败,报错: >g++ -c main.cpp main.omai
..
我为 Clang 使用哪个链接器? 如果我使用 Clang 或 GNU 链接器(ld) 作为链接器,我得到了大量的错误,就好像我没有链接到标准库一样. g++ $(OBJS) -o $(BINDIR)/obtap 看来我必须使用 g++ 来链接我的 Clang 对象. 解决方案 我运行的是 'clang' 而不是 'clang++',这意味着它没有链接 C++ 标准库.
..
我已经从高处和低处搜索了这个问题的答案.我使用的是 boost 1.48,并且程序非常简单,因为我已将其分解为最简单的形式以解决此问题. #include int main(int argc, char **argv) {返回0;} 从我的 Makefile 中执行的 g++ 命令如下: g++ -m32 -Wall -o mapnik-test
..
所以我在 2 个独立的翻译单元中有这段代码: //a.cpp#include 内联 int func() { return 5;}诠释代理();int main() { printf("%d", func() + proxy());}//b.cpp内联 int func() { return 6;}int proxy() { return func();} 正常编译时结果为1
..
我安装了 theano,但是当我尝试使用它时,我得到了这个错误: 警告(theano.configdefaults):未检测到 g++!Theano 将无法执行优化的 C 实现(针对 CPU 和 GPU),默认为 Python实施.性能会严重下降. 我安装了g++,并且把正确的路径放在环境变量中,所以就像theano没有检测到一样. 有谁知道如何解决这个问题或可能是什么原因?
..
我正在使用 MinGW 工具链构建一个 Windows 动态库. 为了构建这个库,我静态链接到提供 API 的其他 2 个库,并且我有一个 .def 文件,我在其中编写了我想在我的库中导出的唯一符号. 问题是 GCC 正在导出所有符号,包括我链接到的库中的符号.有没有办法告诉链接器只导出 def 文件中的符号? 我知道有选项 --export-all-symbols 但似乎没有相
..
我玩弄了 constexpr 并发现了一些有趣的行为: 在某些情况下,在函数前添加 constexpr 可以使 GCC 尝试更加努力地优化,从而完全优化函数并仅提供计算值.但是,从 constexpr 上下文调用这样一个完全优化的函数会导致错误,因为它在内部使用(编译器内置的)函数/内在函数,这些函数/内在函数未标记为 constexpr(尤其是 memcpy). (Clang 在将 co
..
我想将目标文件和静态库合并到一个共享库中,但静态库不应暴露,它只在进入共享库的目标文件中引用.我认为在这种情况下,我不需要使用 -fPIC 编译静态库,但我不知道如何告诉链接器我不会使用静态库中的符号这一事实.为了说明我的问题,请使用以下文件: 文件foo.cpp: #include "static.h"使用命名空间标准;字符串版本信息(){返回静态版本信息();} 文件static.c
..
我正在将在 Ubuntu 14.04 上编译的代码移植到 16.04.我已经克隆了我的 git repo,安装了依赖项并尝试了通常的 make 命令,很快我就遇到了 g++: internal compiler error: Segmentation fault (program cc1plus) ...我不确定从哪里开始诊断和解决此问题. 我会尽可能多地分享,看看是否有人可以指导我解决问题
..
..
我是一名尝试 C++ 的 Java 开发人员. 我刚刚创建了一个新课程.在我的其他课程中,我想要列出可以存储过滤器对象的列表. Filter.h #ifndef FILTER_H_#define FILTER_H_类过滤器{上市:过滤器(int id);内部标识;〜过滤器();};#endif/* FILTER_H_ */ Filter.cpp #include "Filter.
..
最近,我从 Visual Studio 切换到 Eclipse CDT.我已经把它设置得很漂亮,这样我的 Cygwin 安装中的 G++ 编译器就可以毫不费力地找到并编译我的代码. 不过,有一点小小的不满.每次 G++ 报告警告或错误时,大括号单引号 ' 和 ' 分别显示为 â€~ ’.这似乎是一个字符编码问题;G++ 或 Cygwin 正在吐出 CDT 或 Eclipse 都不喜欢的字
..
..
我有一个链表实现,我正在试验合并排序和快速排序算法. 我不明白为什么 std::list 中的排序操作如此之快.查看 linux 下的 std::list ,它似乎也是链表,而不是基于数组的列表. 我在这里尝试的合并排序与 Dave Gamble 的版本几乎相同:合并排序链接列表 另外,我想我会尝试基于此代码的简单快速排序:http://www.flipcode.com/arch
..
我正在使用 gcc 4.6.1,并且遇到了一些有趣的行为,涉及调用 constexpr 函数.该程序运行良好,并立即打印出 12200160415121876738. #include extern const 无符号长乔;constexpr unsigned long fib(unsigned long int x){返回 (x
..
为什么这段代码可以与 #if 0 块一起工作,但如果删除它会失败并显示一组相当复杂的错误消息?更重要的是,如何使它与上面非常相似的块的结果相同? #include #include #include #include #include #include 模板
..
当我尝试时 $ make 依赖 -f gcc.mak 我的 Ubuntu 机器上的一个中间件我得到了这个 /usr/include/../include/limits.h:125:26: 错误:没有搜索limits.h的包含路径 这是limits.h:125周围的内容: /* 获取编译器的limits.h,它定义了几乎所有的ISO 常量.我们把这个#include_next 放在双重包含
..
我正在尝试将 C 代码包含到一个简单的 C++ 程序中,但遇到了一个意想不到的问题 - 当我尝试编译该程序时,g++ 给出了以下错误: /tmp/cccYLHsB.o:在函数“main"中:test1.cpp:(.text+0x11): undefined reference to `add' 我搜索了一个解决方案,找到了这个教程: http://www.parashift.com/c+
..
boost::mutex::scoped_lock 是一个方便的 RAII 包装器,用于锁定互斥锁.我对其他事情使用了类似的技术:一个 RAII 包装器,它要求数据接口从/重新连接到串行设备. 但是,我想不通的是为什么在下面的代码中只有我的对象 mst —其实例化和销毁确实有副作用 —导致 g++ 发出“未使用变量"警告错误,而 l 设法保持沉默. 你知道吗?你能告诉我吗? [gen
..
考虑这个文件,first.cpp,包含一个类定义和使用: #include 结构 Foo{Foo(){ std::cout
..