c++ - 如何指定自定义 libc++

标签 c++ clang libc++

我已经构建了 libc++ 并想在编译我的程序时使用它? 所以我有类似的东西

clang++ -stdlib=~/libc++/libc++.so main.cpp

但这行不通。构建应用程序时如何使用我自定义构建的 libc++?

最佳答案

此信息来自llvm documentation about libcxx .

如果你想使用带有 clang 的自定义 libc++,你必须像这样指定参数:

$ clang++ -std=c++11 -stdlib=libc++ -nostdinc++ -I<path_to_libcxx>/include/c++/v1 -L<path_to_libcxx>/lib -Wl,-rpath,<path_to_libcxx>/lib main.cpp ${end_of_compile_line...}

或者,您可以将库的路径放在 LD_LIBRARY_PATH 中(假设您在 Linux 下):

export LD_LIBRARY_PATH=<libcxx-install-prefix>/lib:$LD_LIBRARY_PATH

并仅使用这些选项进行编译:

$ clang++ -stdlib=libc++ -nostdinc++ -I<path_to_libcxx>/include/c++/v1 -L<path_to_libcxx>/lib main.cpp -o ${end_of_compile_line...}

关于c++ - 如何指定自定义 libc++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51839921/

相关文章:

c++ - Clang 中带有静态 constexpr 的奇怪的循环模板模式 (CRTP)

javascript - 省略一些 C++ 子系统

c++ - std::chrono::years 存储真的至少是 17 位吗?

c++ - 数组未在此范围内声明

C++ 指针和内存释放

c++ - 没有参数的可变参数宏

sfml - 构建 SFML 和 V8

c++ - 在 C++ 中从 execve 调用时,ffmpeg 产生错误的输出

C++队列容器

c++ - std::function::operator bool 应该在 move 后返回 false 吗?