clang相关内容

基于 iOS Swift 的动态框架中的 Objective C 类

情况: 我有一个用 Swift 编写的 iOS 动态框架.我还有一堆用 Objective C 编写的类,我会在我的 Swift 类中使用它们(有些是公共的,有些是私有的).但是,我希望 Objective C 类不要暴露给使用我的框架的项目. 我尝试过的: 伞头 据我所知,我应该在我的伞头文件中使用 #import header.h 导入,通常是 FrameworkNam ..
发布时间:2021-12-29 14:25:37 移动开发

构建库时的 Clang 和未定义符号

我正在开发一个 C++ 框架,当我在 OSX 上使用 Clang 编译它时会出现一些问题. 首先,我正在使用一些其他库,例如 openssl,并且 clang 抱怨在我构建库时某些符号没有得到解决.它们不应该是:这些库将与最终的二进制文件链接,它不应该发生在中介上. 然后,还有一些方法和变量应该在“客户端"二进制文件中实现……使用 GCC,没有问题,但 Clang 也抱怨这些符号在编译 ..
发布时间:2021-12-26 21:58:21 C/C++开发

在适用于 Xcode 的 CMake 中启用 AddressSanitizer 的正确方法是什么

我添加了 AddressSanitizer 标志如下: set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address") 使用 Unix Makefiles 时,一切构建和运行良好. 问题是在生成Xcode项目的时候,它只是不想链接,因为它找不到ASan库. 我已经找到了两个解决方案,但决定不使用它们,因为它们无法仅使用 C ..
发布时间:2021-12-26 21:56:41 C/C++开发

如何使用 CMAKE_EXPORT_COMPILE_COMMANDS?

我一直在尝试将 clang-modernize 与 CMAKE_EXPORT_COMPILE_COMMANDS 结合使用,如在此工具的帮助中推荐的那样. 使用此选项,cmake 会生成一个包含编译信息的 JSON 文件,例如包含路径(另见). 这个变量在cmake的命令行中被接受,但是 cmake --help-variable CMAKE_EXPORT_COMPILE_COMMAND ..
发布时间:2021-12-26 21:49:05 C/C++开发

在 CMake 中,如何测试编译器是否为 Clang?

我们有一套跨平台CMake 构建脚本,我们支持使用 Visual C++ 和 GCC. 我们正在尝试 Clang,但我不知道如何测试编译器是带有我们 CMake 脚本的 Clang. 我应该测试什么来查看编译器是否是 Clang?我们目前正在使用 MSVC 和 CMAKE_COMPILER_IS_GNU 分别测试 Visual C++ 和 GCC. 解决方案 一个可靠的检查是使 ..
发布时间:2021-12-26 21:39:48 C/C++开发

如何告诉 CMake 在 Windows 上使用 Clang?

我有一个使用 CMake 构建的 C++ 项目.我通常在 OSX 上构建,但现在我也在尝试让 Windows 版本也能正常工作.出于兼容性原因,我想在 Windows 上使用 Clang. 我从 LLVM 安装了预编译的 Clang 3.8 二进制文件: C:\Program Files\LLVM\bin\clang.exeC:\Program Files\LLVM\bin\clang++ ..
发布时间:2021-12-26 21:37:48 C/C++开发

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

我有许多使用 CMake 构建的项目,我希望能够在使用 GCC 或 Clang/LLVM 之间轻松切换来编译它们.我相信(如果我错了,请纠正我!)要使用 Clang,我需要设置以下内容: SET (CMAKE_C_COMPILER "/usr/bin/clang")SET (CMAKE_C_FLAGS "-Wall -std=c99")SET (CMAKE_C_FLAGS_DEBUG "-g" ..
发布时间:2021-12-26 21:29:47 其他开发

在 NetBeans 中集成 Clang?

在 NetBeans 中集成 Clang 涉及哪些步骤?我还想从 NetBeans 中查看 Clang 错误和警告消息.这将主要用于在 C 中进行开发. 解决方案 NetBeans 7.2 原生支持 Clang. 只需打开选项窗口,切换到 C/C++ 部分,然后添加一个新的工具集合.在基本目录中键入:/usr/bin,然后在组合框中选择“CLang". 我一直在使用 Clang ..
发布时间:2021-12-26 15:19:48 C/C++开发

free() 是否将内存清零?

直到今天,我一直相信在内存空间上调用 free() 会释放它以供进一步分配,无需任何其他修改.特别是,考虑到这个问题明确指出 free() 不会将内存归零. 然而,让我们考虑一下这段代码(test.c): #include#includeint main(){int* 指针;if (NULL == (pointer = malloc(sizeof(*pointer))))返回 EXIT_F ..
发布时间:2021-12-24 17:04:07 其他开发

如何使用 clang++/libc++ 编译/链接 Boost?

这个问题的答案为什么在 c++0x 模式下用 libc++ 不能 clang 链接这个 boost::program_options 示例? 声明“您需要使用 clang++ -stdlib=libc++ 重建 boost." 我使用 MacOS Lion 和 clang v3.0.如何使用 clang 构建 Boost v1.48.0 并将其与 libc++ 链接? 更新:我创建了一 ..
发布时间:2021-12-24 15:02:24 C/C++开发

如何告诉 Clang 停止伪装成其他编译器?

我过去遇到过这个问题:LLVM 定义了 __GNUC__,但它不能使用 GCC 可以使用的程序.我在 Windows 上再次遇到它:LLVM 定义了 _MSC_VER,但它不能使用 VC++ 可以使用的相同程序.更糟糕的是(对我来说)我们有专门的 LLVM Clang 和 Apple Clang 代码路径(由于版本方案不同而定义不同),我们必须与工具斗争才能使用它们. 我们如何告诉 Clan ..
发布时间:2021-12-22 18:49:52 其他开发

为什么这个程序被三个C++编译器错误拒绝了?

我在编译我编写的 C++ 程序时遇到了一些困难. 这个程序非常简单,据我所知,它符合 C++ 标准中规定的所有规则.为了确定,我已经通读了 ISO/IEC 14882:2003 两次. 程序如下: 这是我在尝试使用 Visual C++ 2010 编译此程序时收到的输出: c:\dev>cl/nologo helloworld.pngcl:命令行警告 D9024:无法识别的源文 ..
发布时间:2021-12-22 18:14:54 C/C++开发

融合乘加和默认舍入模式

使用 GCC 5.3 以下代码与 -O3 -fma float mul_add(float a, float b, float c) {返回 a*b + c;} 产生以下组件 vfmadd132ss %xmm1, %xmm2, %xmm0退 我注意到 GCC 使用 -O3 已经在 GCC 4.8 中这样做了. 带有 -O3 -mfma 的 Clang 3.7 生成 vmulss % ..
发布时间:2021-12-18 23:22:42 其他开发