首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏owent

    再度优化GCC、LLVM、Clang、libc++、libc++abi等套件的构建脚本

    前言 一直以来,我都维护了完整的 GCC 工具链构建工具 和 LLVM,Clang,libc++,libc++abi工具链构建工具 。 同时很多发行版自带的 LLVM+Clang 套件都缺斤少两,有的缺少 clang-analyzer ,有的缺少 clang-format ,也有的缺少 libc++ 和 libc++abi 或者缺少sanitizer 如: export REPOSITORY_MIRROR_URL_GNU=http://mirrors.tencent.com/gnu 增加了用于生成RPM包的配置 LLVM,Clang,libc++,libc ++abi等 LLVM,Clang,libc++,libc++abi工具链构建工具 经历过多次改版。 首先我们和 GCC 工具链构建工具 一样,我们也给 LLVM,Clang,libc++,libc++abi工具链构建工具 增加了用于生成RPM包的配置。

    3.9K40编辑于 2023-03-06
  • 来自专栏吊打面试官

    mac 使用Clang(Next-gen compiler infrastructure)配置VS Code C/C++环境

    本文主要内容 libc++ 是LLVM编译器套件的默认C++标准库。 编译器支持: libstdc++是GNU编译器套件(GCC)的默认C++标准库实现, 而libc++是LLVM编译器套件的默认C++标准库实现。 因此,libstdc++主要用于GCC编译器,而libc++主要用于LLVM编译器(如Clang)。 -lc++:指定使用 LLVM 提供的 libc++ 库。 链接: 最后,编译器调用 ld(链接器)来链接生成目标文件(.o)和所需的标准库(如 libc++)。这会生成最终的可执行文件 hello。

    2.5K10编辑于 2025-01-12
  • 来自专栏owent

    重写了llvm+clang+libc++和libc++abi的构建脚本

    clang++ -O0 -g -ggdb -std=c++11 -stdlib=libstdc++ [源文件…] > > clang -O0 -g -ggdb -std=c++11 -stdlib=libc ++ -lc++ -lc++abi [源文件…] > > clang -O0 -g -ggdb -std=c++14 -stdlib=libc++ -lc++ -lc++abi [源文件…] > > clang++ -O0 -g -ggdb -std=c++11 -stdlib=libc++ -lc++abi [源文件…] > > clang++ -O0 -g -ggdb -std=c++ 14 -stdlib=libc++ -lc++abi [源文件…] > > 其他选项参见: llvm-config –cflags ; llvm-config –cxxflags ; llvm-config –ldflags 如果使用clang -stdlib=libc++则需要加上-lc++ -lc++abi的链接选项,或者使用clang++ -stdlib=libc++ -lc++abi。

    2.6K20发布于 2018-08-01
  • 来自专栏大宇笔记

    Xcode10 Pod第三方库找不到lstdc++ 6.0.9

    分析 ---- 问题: ---- 升级完Xcode10之后运行老项目,报错找不到lstdc++ 6.0.9 原因: ---- 苹果在XCode10和iOS12中移除了libstdc++这个库,由libc ++这个库取而代之,苹果的解释是libstdc++已经标记为废弃有5年了,建议大家使用经过了llvm优化过并且全面支持C++11的libc++库。 解决办法(好多种,推荐第一种正面解决): ---- 如果是自己的target使用这个库,替换成libc++即可。如果是第三方库引用,查清哪个库,升级下版本即可。

    1.1K20发布于 2019-01-15
  • 来自专栏咩嗒

    Hello World for gn

    ninja -C out 这步是调用ninja编译项目,这也碰到几个坑: 要用libc++源码 ninja: Entering directory `out' ninja: error: '.. /buildtools/third_party/libc++/trunk/src/algorithm.cpp', needed by 'obj/buildtools/third_party/libc++ /libc++/algorithm.o', missing and no known rule to make it 通过DEPS文件添加libc++源码下载解决。 一个简单的helloworld工程,最终目录竟达316M,估计都是那些libc++,clang,sysroot所占的空间。

    1.1K10编辑于 2023-05-26
  • 来自专栏typecodes

    CentOS7.3使用CMake编译安装最新的LLVM和Clang4.0.1

    @typecodes projects]# cd ~/ && mkdir build && cd build/ 4 使用Cmake编译生成makefile文件 如果想clang/clang++自动使用libc ++库,那么在编译clang时就需要指定DCLANG_DEFAULT_CXX_STDLIB参数值为libc++,否则在链接的时候自动使用gcc/g++的libstdc++库。 当然,也可以每次在用clang/clang++编译程序的时候指定--stdlib=libc++。 cmake -G "Unix Makefiles" -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCLANG_DEFAULT_CXX_STDLIB=libc 7 安装 libcxx 和 libcxxabi 使用命令make install-cxx install-cxxabi安装clang/clang++所需要的libc++库。

    1.9K10编辑于 2024-03-29
  • 来自专栏Elton的技术分享博客

    Mac Terminal如何支持C++11

    如果想使用C++11,可以用clang++替代g++,并用libc++替换libstdc++,因为libstdc++的版本也太老,不支持c++11 clang++ -std=c++11 -stdlib= libc++ -Weverything main.cpp 这样就可以正常编译C++11的文件了 ---- Previous C++代码编译时出现 ld

    1.5K10发布于 2021-01-26
  • 来自专栏owent

    LLVM+Clang+Libcxx+Libcxxabi(3.6)工具链编译(完成自举编译)

    终于自举编译成功啦,第二次自举编译完成后,不再依赖libstdc++,转而依赖编译出来的libc++和libc++abi,但是仍然会依赖libgcc_s.so 多线程编译的时候时不时会出现奇怪的失败, gtest, gtest-devel/gtest-dev(lld依赖项) GCC 4.7 or higher 我编译的环境 系统: CentOS 7 系统库: 详情参见 llvm官网 编译的依赖库: libc 各种链接问题,解决不了,反正已经支持gdb了就用gdb吧) 参考文献 llvm官网 Linux下编译clang、libcxx及其相关库——C++11环境搭建 linux下编译clang, libc

    2.2K10发布于 2018-08-01
  • 来自专栏owent

    [C++20] Module partitions和符号交叉引用(声明和实现分离)

    (我这里的版本是 Clang 11.0.0) 猜测以后支持了的话,命令应该是下面这样: clang++ -std=c++20 -stdlib=libc++ -fmodules --precompile -x c++-module foo-types.ixx -o foo-types.pcm clang++ -std=c++20 -stdlib=libc++ -fmodules --precompile -x c++-module foo-base.ixx -o foo-base.pcm clang++ -std=c++20 -stdlib=libc++ -fmodules --precompile - -x c++-module foo-derived.ixx -o foo-derived.pcm clang++ -std=c++20 -stdlib=libc++ -fmodules --precompile -x c++-module foo.ixx -o foo.pcm clang++ -std=c++20 -stdlib=libc++ -fmodules -fprebuilt-module-path=.

    2.1K20发布于 2021-03-29
  • 来自专栏owent

    LLVM + Clang + Libcxx + Libcxxabi 工具链编译

    gtest-dev(lld依赖项) GCC 4.7 or higher 我编译的环境 系统: CentOS 6.2 & CentOS 7.0 系统库: 详情参见 llvm官网 编译的依赖库: libc 2015-03-10 更新到 llvm 3.5.1 参考文献 llvm官网 Linux下编译clang、libcxx及其相关库——C++11环境搭建 linux下编译clang, libc

    2.9K10发布于 2018-08-01
  • 来自专栏【腾讯云开发者】

    在Exception的影响下,如何才能写出更高质量的C++代码?

    二、libc++ Exception 实现浅探 前一节我们验证了C++ Exception在频繁发生异常的情况下会导致程序性能变慢的现象,这一节开始我们尝试去寻找导致这一现象的原因。 目的是找出对于throw关键字,libc++为我们最终生成的可执行文件添加了哪些额外函数。 是编译器在编译时添加的部分,链接时的会在libc++中寻找这三个符号的完整定义。 我们链接时使用的是gcc指令,只会链接libc,C语言中并没有这三个符号的定义,所以我们在链接时才会报错。 对于try {...} catch () {...}来说也一样,链接时会链接到libc++中对应的函数实现,我们通过汇编代码再来体会一下: void raise() { Unwind_Resume 应该又是 libc++ 里面的函数了。该函数的作用是去其他栈帧寻找是否有该类型 Exception 的处理函数。

    82320发布于 2021-08-10
  • 来自专栏码匠的流水账

    android手机安装deepseek-r1:1.5b

    libcpp_verbose_abortEPKcz" referenced by "/data/data/com.termux/files/usr/bin/clang-19"...则需要更新下pkg重新安装libc ++ clangpkg update && pkg upgradepkg install --reinstall libc++ clangpkg clean启动ollama.

    1.1K10编辑于 2025-02-09
  • 来自专栏欧阳大哥的轮子

    从Xcode10不再支持libstdc++说起

    众所周知从Xcode10起,苹果摒弃了对libstdc++库的支持转而支持libc++库了。 也就是说libc++其实一个更加新的C++标准库实现,它完全支持C++11标准,而苹果的Xcode10将不再支持老版本的标准库libstdc++实现,而是升级为只支持新版本的标准库libc++实现了。 如果你选择的标准库是libc++。 可这个问题却不会发生在不同版本的C++标准库:libstdc++和libc++中,你可以在程序中同时依赖这两个库,而不会产生编译链接错误。 我们知道libc++中的内容是libstdc++中的超集,为什么在同时引入两个库时不会报函数或者类名冲突呢? 答案就是C++11中提供了对inline namespace的支持。

    2.8K30发布于 2018-11-09
  • 来自专栏GoCoding

    C++20 以 Bazel & Clang 开始

    C++20 特性,编译器支持情况: C++ compiler support[9] libc++ C++20 Status[10] 因此,这里以源码方式安装 LLVM,需要构建 Clang & libc ++: Building Clang[11] Building libc++[12] git clone -b llvmorg-14.0.6 --depth 1 https://github.com/llvm ", 42); std::cout << message << std::endl; } EOF clang++ -std=c++20 -stdlib=libc++ hello.cc -o hello start-bazel/README.md [9]C++ compiler support: https://en.cppreference.com/w/cpp/compiler_support [10]libc libcxx.llvm.org/Status/Cxx20.html [11]Building Clang: https://clang.llvm.org/get_started.html [12]Building libc

    2.1K30编辑于 2022-11-07
  • 来自专栏鸿蒙开发笔记

    OpenHarmony应用集成和固件集成中C库差异化分析

    .so或libc.so有所差异分析基础库差异我们对比一下IDE的SDK和OpenHarmony的sdk中的基础库(libc++.so/libc.so)首先对比libc++.so的符号表(左:IDE中的libc ++,右:OpenHarmony中的libc++)从上图可以看出函数的命名空间被隔离开了,并且部分函数不一致,是新增的对比libc.so的符号表(左:IDE中的libc,右:OpenHarmony中的libc

    34820编辑于 2024-08-27
  • 来自专栏AI

    谷歌 AI Fuzz 工具 OSS-Fuzz 发现 26 个零日漏洞

    这包括迁移到安全缓冲区和启用强化的 libc++,后者向标准 C++ 数据结构添加边界检查,以消除一类重要的空间安全错误。它进一步指出,更改这些问题所产生的开销很小(即平均 0.30% 的性能影响)。 “开源贡献者最近添加了强化的 libc++,引入了一组安全检查,旨在捕获生产中的越界访问等漏洞,”谷歌表示。“虽然 C++ 无法完全实现内存安全,但这些改进降低了风险 [...]

    61910编辑于 2024-11-22
  • 来自专栏极客编程

    用Visual Studio Code和CLion进行EOS开发

    目前,eosiolib, libc++和musl默认存在这里用于编译。紧接着是externals和libraries。两个文件夹都包含用于使整个编译过程更容易的库。 set(DEFAULT_SYSTEM_INCLUDE_FOLDERS ${CMAKE_SOURCE_DIR}/contracts/libc++/upstream/include ${CMAKE_SOURCE_DIR CMAKE_SOURCE_DIR}/externals/magic_get/include) add_subdirectory(eosiolib) add_subdirectory(musl) add_subdirectory(libc add_wast_executable(TARGET Players INCLUDE_FOLDERS "${STANDARD_INCLUDE_FOLDERS}" LIBRARIES libc libc

    2.4K20发布于 2018-09-04
  • 来自专栏软件分析的艺术

    std::ndk1与std::1不匹配编译错误引发的Android_NDK接口设计思考

    Bionic 耦合度:AOSP 的 libc++ 是针对特定的 Android 系统版本编译的,它与同版本的 libc.so(Bionic)深度耦合。 NDK 的 libc++ 为了保持向后兼容性(例如让你的 App 能在 Android 5.0 到 14 上运行),会包含大量针对旧版系统 Bug 的 Workaround。 target_link_options(main_std_namespace_test PRIVATE "-Wl,--allow-shlib-undefined")扩展和DEMO示例各STL库区别和关系libstdc++ 和libc libc++**:现代化的选择**如果你使用Clang编译器,并希望拥抱更新的C++标准或获得更现代化的标准库体验,可以选择 libc++。 当前推荐库 c++_static / c++_shared LLVM (libc++) libc++_static.a libc++_shared.so 官方当前默认及唯一推荐的

    10800编辑于 2026-04-14
  • 来自专栏linux百科小宇宙

    Ubuntu 下gvim/vim clang_complete自动补全安装

    let g:clang_close_preview=1 let g:clang_use_library=1 let g:clang_user_options='-stdlib=libc

    89100发布于 2021-06-16
  • 来自专栏bit哲学院

    深入浅出 C++:与程序终止相关的函数 PART 2 - quick_exit()、_Exit()

    :cout << "End of main()" << std::endl; }  sora@sora-VirtualBox:~/cpp/c2$ clang++ -std=c++17 -stdlib=libc sora@sora-VirtualBox:~/cpp/c2$ clang++ -std=c++17 -stdlib=libc++ --pedantic-errors -pthread -o _Exit

    1.6K30发布于 2021-02-14
领券