我有一个简单的示例来测试我的IDE,以准备好我的C ++环境。 我目前在Ubuntu 14.04中使用Codeblocks 13.12。

当我构建程序时,编译器将执行以下代码,并且该程序在运行时将引发错误。

g++-4.8 -Wall -fexceptions -O3 -pedantic-errors -std=c++11 -Wextra -Wall -pthread  -c /home/mikeldi/workspace/codeblocks/main.cpp -o obj/Debug/main.o
g++-4.8  -o bin/Debug/test obj/Debug/main.o   

错误:

terminate called after throwing an instance of 'std::system_error'
what(): Unknown error -1
Aborted (core dumped)

另一方面,如果我执行以下行(请注意,在main.cpp之前我不使用-c),程序将毫无问题地执行。

g++-4.8 -Wall -fexceptions -O3 -pedantic-errors -std=c++11 -Wextra -Wall -pthread main.cpp  -o main

因此,我的问题是:-c做什么使程序无法运行? 有什么方法可以设置codeBlocks而不使用-c吗?

提前致谢,

===============>>#1 票数:0

如果您的程序在运行时引发错误,则问题很可能出在代码中,而不是所使用的编译器开关中。 话虽如此,两次编译器调用之间的差异比-c大得多。 特别是,差异是

-fexceptions -march=corei7  -g

如果将这些编译开关添加到命令行调用中,例如

g++-4.8 -fexceptions -march=corei7 -g -O3 -pedantic-errors -std=c++11
    -Wextra -Wall -pthread main.cpp -o main

您可以重新编译您的代码,看看它可能仍然崩溃。 因为-g标志告诉编译器将调试信息包含到生成的目标文件中,所以可以使用所选的调试器逐步查找代码,以查找错误的位置。

===============>>#2 票数:0 已采纳

正如PeterT在评论中所说,一旦解决,编译器和链接器都需要-pthread,程序运行良好:

g++-4.8 -Wall -fexceptions -O3 -pedantic-errors -std=c++11 -Wextra -Wall -pthread  -c /home/mikeldi/workspace/codeblocks/main.cpp -o obj/Debug/main.o
g++-4.8  -o bin/Debug/test obj/Debug/main.o -pthread

谢谢大家。

  ask by magodiez translate from so

未解决问题?本站智能推荐:

1回复

用静态库编译C ++ / SDL吗?

在Windows系统中,我需要将所有这些.dll文件与我的.exe保留在同一文件中吗? 我希望我可以将所有文件合并到一个.exe ,有什么方法吗? 我是Linux和Windows用户,在Linux中我仅使用终端,但在Windows中我使用CodeBlocks !
2回复

C ++编译期间出现“无此文件或目录”错误

严重错误:iostream.h:没有此类文件或目录 为什么代码块在编译后返回此错误 我是C ++的初学者
1回复

逗号运算符的c ++代码右操作数的编译错误无效

我的C ++代码: 错误: C:\\ Users \\ hkteco-ir \\ Desktop \\ c ++ \\ dsdsa \\ main.cpp | 223 |警告:逗号运算符的右操作数无效[-Wunused-value] |
1回复

用C :: B压缩我的第一个应用程序

我是C ++的新手,最近我一直在学习web-dev语言。 我在使用Code :: Blocks编译我的第一个C ++应用程序时遇到了问题。 这是我的代码,它非常简单: 但在构建时,上面会产生以下错误: 代码本身对我来说似乎没有错误,但我想从专业人士那里得到一些提示。
1回复

C ++版本exe无法正常工作的代码块

:)我在使用c ++时遇到麻烦(我是初学者,哈哈)我需要发布.exe的帮助,我在Code :: Blocks中运行程序,并且一切正常……但是当我运行独立的.exe时,不起作用。 :(我的代码包含“ cmath”,所以我认为可能是导致此问题的原因吗?我的程序是这样工作的:它向用户询问他们的汽车重
1回复

如何使用G ++ w / CodeBlocks编译64位?

我目前正在创建一个共享的lib DLL,但我需要在运行时在64位环境中加载它,所以它目前无法正常工作。 如何使用g ++从代码块编译64位dll? 我已经尝试过像-m64这样的编译器选项,但似乎没有工作。
1回复

编码块编译,GCC不编译

我有一个C ++程序,大约7个头文件和7个.cpp文件都直接插入一个。 如果我尝试在CodeBlocks中编译它,一切都很好,花花公子。 没问题。 但是,我试图让它在Unix命令行下运行。 我正在通过输入进行基本编译 这应该生成一个名为a.out的文件(默认情况下),我将运行
1回复

Code :: Blocks WxWidget错误 - 没有目标!你应该使用wx-config程序编译标志?

我无法获得Code :: Blocks附带的默认WxWidget模板进行编译。 我收到的error "No Target! You should use wx-config program for compilation flags!是error "No Target! You should
1回复

Code :: Blocks哪里是“编译开关”?

我这里有一个术语问题,如果你可以提供帮助,这将是非常好的,我不知道这意味着什么。 在tetgen网站上 ,在Windows上编译tetgen库的说明如下: 要创建库,请执行以下最小步骤: 创建一个名为library的Win32静态 library 。 将所
1回复

SFML 2.3和CodeBlocks错误编译

我正在尝试使sfml与代码块一起使用。 我做了本视频教程中所说的一切: https : //www.youtube.com/watch?v=gEGWO8ug2bY 如果仅添加SFML / Graphics.hpp,一切都会正常,因此我的配置并不完全糟糕。 但是,如果我尝试添加SFML