Tag: libstdc ++

Android SDK – aapt错误:libstdc ++。so.6无法打开共享对象文件

我创build了一个新的项目,为了testing的目的,在一个新的ADT安装(Ubuntu GNOME 14.04 LTS,x86_64 CPU)上保留了所有参数默认(我没有做任何代码改变),但是我有以下Eclipse控制台中的错误: [2014-06-11 09:03:10 – Kronos] /home/erwan/Applications/ADT/adt-bundle-linux-x86_64-20140321/sdk/build-tools/19.1.0/aapt: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory 这是我已经尝试过的: – >我尝试通过Ubuntu软件存储库(重新)安装ia32-libs,libstdc ++和libstdc ++ 6:没有改变 – >检查更新(对于Eclipse和SDK):无变化 – >重新安装所有的Android构build工具:没有变化 – >重新安装ADB:不变

何时需要使用flag -stdlib = libstdc ++?

什么时候需要使用gcc编译时使用flag -stdlib=libstdc++作为编译器和链接器? 编译器是否自动使用libstdc ++? 我在Ubuntu 13.10上使用gcc4.8.2,我想使用c ++ 11标准。 我已经将-std=c++11传递给编译器。

可以定义一个完全一般的swap()函数吗?

以下片段: #include <memory> #include <utility> namespace foo { template <typename T> void swap(T& a, T& b) { T tmp = std::move(a); a = std::move(b); b = std::move(tmp); } struct bar { }; } void baz() { std::unique_ptr<foo::bar> ptr; ptr.reset(); } 不为我编译: $ g++ -std=c++11 -c foo.cpp In file included from /usr/include/c++/5.3.0/memory:81:0, from foo.cpp:1: /usr/include/c++/5.3.0/bits/unique_ptr.h: In […]

在初始化列表中使用std :: array

除非我错了,应该可以用这些方法创build一个std:数组: std::array<std::string, 2> strings = { "a", "b" }; std::array<std::string, 2> strings({ "a", "b" }); 然而,使用GCC 4.6.1我无法得到任何这些工作。 编译器只是说: expected primary-expression before ',' token 而初始化列表工作正常与std :: vector。 那是哪个呢? 我误以为std :: array应该接受初始化列表,还是让GNU标准C ++库团队疯狂?

静态链接libstdc ++:任何陷阱?

我需要在Ubuntu 12.10上使用GCC 4.7的libstdc ++部署一个C ++应用程序到运行Ubuntu 10.04的系统,该系统带有一个相当老版本的libstdc ++。 目前,我正在编译-static-libstdc++ -static-libgcc ,正如本博文所build议的: 静态链接libstdc ++ 。 作者警告,静态编译libstdc ++时不要使用任何dynamic加载的C ++代码,这是我还没有检查过的东西。 不过,现在一切似乎都进展顺利:我可以使用Ubuntu 10.04上的C ++ 11function,这正是我以前的做法。 我注意到这篇文章是从2005年开始的,也许从那以后有了很大变化。 它的build议还是最新的吗? 有什么潜在的问题我应该知道?

我应该使用libc ++还是libstdc ++?

我正在使用c / c ++开发osx和linux的命令行界面可执行文件。 该项目将链接到opencv。 我应该使用libc ++还是libstdc ++?

使用libstdc ++编译的库和clang ++ -stdlib = libc ++

我在Mac OS X(10.8.2)下使用C ++,最近我想出了使用C ++ 11特性的必要性,这些特性可以通过使用libc ++ stdlib的clang ++编译器获得。 不过,我还需要使用一些遗留库,编译并链接到libstdc ++(来自MacPorts)。 在这样做的时候,我得到了链接错误,因为使用std::string的遗留库的头文件需要根据std::__1::basic_string (即std::string的libc ++实现)而不是std::basic_string实现。 有没有办法在开发中混合两个库(例如,使用一些预处理器标志?)

IOS7(仅)stdlibc ++链接问题

我需要帮助。 我有一个框架,使用stdc ++像std:string。 现在,当我为IOS7创build新应用程序时,由于stdc ++ lib的问题,链接此框架时出现问题: 架构armv7“std :: basic_string,std :: allocator> :: _ Rep :: _ S_empty_rep_storage”的未定义符号,引用自… 我发现奇怪的是,当我在这个应用程序中将Deplyment目标更改为ios6时,所有工作都正常。 用ios7我看到错误。 我已经在其他链接器标志中设置了标志:-lstdc ++ 任何想法是什么阿米做错了?

为什么传递给线程函数的对象引用参数不能编译?

我遇到了使用新的c ++ 11 std::thread接口的问题。 我不知道如何将一个std::ostream的引用传递给线程将执行的函数。 下面是一个传递整数的例子(在gcc 4.6下按照预期编译和工作): void foo(int &i) { /** do something with i **/ std::cout << i << std::endl; } int k = 10; std::thread t(foo, k); 但是当我尝试传递一个ostream它不会编译: void foo(std::ostream &os) { /** do something with os **/ os << "This should be printed to os" << std::endl; } std::thread t(foo, std::cout); […]

/usr/lib/libstdc++.so.6:未find版本`GLIBCXX_3.4.15'

我如何在Ubuntu中获得GLIBCXX_3.4.15? 我无法运行一些我正在编译的程序。 当我这样做时: strings /usr/lib/libstdc++.so.6 | grep GLIBC 我得到: GLIBCXX_3.4 GLIBCXX_3.4.1 GLIBCXX_3.4.2 GLIBCXX_3.4.3 GLIBCXX_3.4.4 GLIBCXX_3.4.5 GLIBCXX_3.4.6 GLIBCXX_3.4.7 GLIBCXX_3.4.8 GLIBCXX_3.4.9 GLIBCXX_3.4.10 GLIBCXX_3.4.11 GLIBCXX_3.4.12 GLIBCXX_3.4.13 GLIBCXX_3.4.14 GLIBC_2.2.5 GLIBC_2.3 GLIBC_2.4 GLIBC_2.3.4 GLIBC_2.3.2 GLIBCXX_FORCE_NEW GLIBCXX_DEBUG_MESSAGE_LENGTH 感谢您的帮助!