Tag:

GCC -g vs -g3 GDB标志:有什么区别?

使用gcc或Clang编译C源代码时,我始终使用-g标志为gdb生成debugging信息。 gcc -g -o helloworld helloworld.c 我注意到有人推荐-g3 。 -g和-g3标志有什么-g3 ? -g和-ggdb也有区别吗?

使用LLVM / Clang忽略特定文件中的所有警告

我的iOS项目中有一些文件有一些警告,我想忽略这些警告。 我不想在整个项目中禁用警告(知道如何做),只是一些特定的文件。 那么,有没有办法彻底忽略来自特定文件的所有警告? 我在Xcode 4.2上使用LLVM 3.0和Clang。

混淆模板错误

我一直在玩clang,我偶然发现了“test / SemaTemplate / dependent-template-recover.cpp”(在clang发行版中),它应该提供一些提示来从模板错误中恢复。 整个事情可以很容易地被剥离到一个最小的例子: template<typename T, typename U, int N> struct X { void f(T* t) { // expected-error{{use 'template' keyword to treat 'f0' as a dependent template name}} t->f0<U>(); } }; 叮当产生的错误信息: tpl.cpp:6:13: error: use 'template' keyword to treat 'f0' as a dependent template name t->f0<U>(); ^ template 1 error generated. …但是我很难理解到底在哪里插入template关键字来使代码在语法上是正确的?

用于Windows的LLVM C ++ IDE

是否有一些Windows的C / C ++ IDE与LLVM编译器(和Clang C / C ++分析器) 集成在一起,就像现代的Xcode一样。 我有Dev-Cpp(它使用过时的GCC)和Code :: Blocks (与一些GCC)。 但GCC给了我非常神秘的错误信息。 我想从Clang前端获得更多用户友好的错误消息。 是的,Clang不能用于复杂的C ++代码,但是中继Clang已经可以自己编译LLVM了。 所以我想知道是否有LLVM IDE在开发或testing版本。 是的,我可以使用Clang作为其他编译器与GCC兼容的IDE。 但是有没有与Clang 集成的 IDE? 铿锵有不同的输出格式,所以IDE必须parsing它。 铿锵可以提供源parsing的IDE。 Clang有一个分析选项,必须在IDE中支持。 看看,例如http://iosdevelopertips.com/xcode/static-code-analysis-clang-and-xcode-3-2.html 而Clang最想要的function是智能自动完成,所以IDE只能提示语法正确的变体,例如只列出这个结构类的字段。 结果:(从答案中合并): Eclipse与CDT> = 8和https://code.google.com/archive/p/llvm4eclipsecdt/插件,从Petri Tuononen(没有智能自动完成) Vim与LLVM项目的vimrc(只有智能补全?) https://llvm.org/viewvc/llvm-project/llvm/trunk/utils/vim/ Emacs的(智能完成?) https://llvm.org/svn/llvm-project/cfe/trunk/utils/clang-completion-mode.el Qt创build者: https : //blog.qt.io/blog/2011/10/19/qt-creator-and-clang/ CodeLite: http : //www.codelite.org/LiteEditor/ClangIntegration35

如何使clang编译成llvm IR

我想要clang编译我的C/C++代码到LLVM字节码而不是二进制可执行文件。 我怎样才能做到这一点? 如果我得到LLVM字节码,我怎么能把它进一步编译成二进制可执行文件。 基本上我想在编译成二进制可执行文件之前将我自己的一些代码添加到LLVM字节码中。

使用CMake在GCC和Clang / LLVM之间切换

我有一些使用CMake构build的项目,我希望能够轻松地使用GCC或Clang / LLVM来编译它们。 我相信(如果我错了,请纠正我)要使用Clang,我需要设置以下内容: SET (CMAKE_C_COMPILER "/usr/bin/clang") SET (CMAKE_C_FLAGS "-Wall -std=c99") SET (CMAKE_C_FLAGS_DEBUG "-g") SET (CMAKE_C_FLAGS_MINSIZEREL "-Os -DNDEBUG") SET (CMAKE_C_FLAGS_RELEASE "-O4 -DNDEBUG") SET (CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g") SET (CMAKE_CXX_COMPILER "/usr/bin/clang++") SET (CMAKE_CXX_FLAGS "-Wall") SET (CMAKE_CXX_FLAGS_DEBUG "-g") SET (CMAKE_CXX_FLAGS_MINSIZEREL "-Os -DNDEBUG") SET (CMAKE_CXX_FLAGS_RELEASE "-O4 -DNDEBUG") SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g") SET (CMAKE_AR "/usr/bin/llvm-ar") SET (CMAKE_LINKER "/usr/bin/llvm-ld") SET (CMAKE_NM […]

在mac上,g ++(clang)默认不能search/ usr / local / include和/ usr / local / lib

我在Mac上,我用homebrew安装gmp 。 Kyumins-iMac:gcjlib math4tots$ g++ main.cpp -lgmp -lgmpxx In file included from main.cpp:2: ./gcjlib.hpp:4:10: fatal error: 'gmpxx.h' file not found #include <gmpxx.h> ^ 1 error generated. 所以我明确告诉g++使用/usr/local/include Kyumins-iMac:gcjlib math4tots$ g++ main.cpp -lgmp -lgmpxx -I/usr/local/include ld: library not found for -lgmp clang: error: linker command failed with exit code 1 (use -v to see invocation) 所以我明确告诉g++使用/usr/local/lib […]

这种范围界定的forms如何?

或多或less地偶然发现了这种forms的范围 DataSource *dataSource =({ NSInteger idx = [[self.tableView indexPathForSelectedRow] row]; DataSource *dataSource = [DataSource new]; dataSource.address = self.destinations[idx][0]; dataSource.name = self.destinations[idx][1]; dataSource; }); 我认为这是创build和实例化对象和variables的好方法,因为临时variables只有在需要创build我真正需要和关心的对象时才会生存。 在上面的代码中,只要将内部dataSource写入到外部dataSource , idx将会消失,因为范围将在不久之后离开。 另外我觉得这个事实很吸引人,完全实例化和configuration的对象将被设置为外部对象。 其实我甚至不知道这是一个C或Objective-Cfunction或语法糖果添加到叮当声。 @Unheilig 这是组织代码的语法。 它不是像块或封闭的东西。 在代码的最后你只需要一个完全实例化和configuration好的对象。 如果你只需要一个对象作为parameter passing给一个方法,这个就派上用场了,但是这个对象的configuration需要多个语句。 您可以传递一个语句expression式,而不是将其分配给本地临时variables。 [[MYViewController alloc] initWithDataSource:({ NSInteger idx = [[self.tableView indexPathForSelectedRow] row]; DataSource *dataSource = [DataSource new]; dataSource.address = self.destinations[idx][@"address"]; dataSource.name = […]

铿锵优化水平

在gcc上, 手册根据特定的优化参数( -funswitch-loops , -fcompare-elim等)来解释-O3 , -Os等的转换。 我正在寻找叮当的相同信息 。 我已经在网上看到,只有一般信息( -O2比-O1更优化, -Os优化速度,…)的man clang ,并且在Stack Overflow上看到了这个 ,但是我没有find任何相关的东西在引用的源文件中。 编辑:我发现了一个答案,但我仍然感兴趣,如果任何人有一个链接到用户手册logging所有的优化和通过-Oxselect的通行证。 目前我只是发现这个通行证列表,但没有优化级别。

如何在Xcode项目中打印“构build设置”列表?

备用标题 Xcode构buildvariables的列表 打印Xcode生成设置的列表 铿锵的环境variables Xcode环境variables的规范列表 是否有可用于构build规则等的Xcode环境variablesCanonical列表 ?