服务器开发

是什么让 gcc std::list 排序实现如此之快?

我有一个链表实现,我正在试验合并排序和快速排序算法. 我不明白为什么 std::list 中的排序操作如此之快.查看 linux 下的 std::list ,它似乎也是链表,而不是基于数组的列表. 我在这里尝试的合并排序与 Dave Gamble 的版本几乎相同:合并排序链接列表 另外,我想我会尝试基于此代码的简单快速排序:http://www.flipcode.com/arch ..
发布时间:2022-01-23 21:09:57 服务器开发

GCC 构建问题 (#include_next limits.h)

当我尝试时 $ make 依赖 -f gcc.mak 我的 Ubuntu 机器上的一个中间件我得到了这个 /usr/include/../include/limits.h:125:26: 错误:没有搜索limits.h的包含路径 这是limits.h:125周围的内容: /* 获取编译器的limits.h,它定义了几乎所有的ISO 常量.我们把这个#include_next 放在双重包含 ..
发布时间:2022-01-23 21:09:27 服务器开发

C++ 函数模板特化的可见性

假设我有 fileA.h,它使用模板函数 SomeFunc() 声明了一个类 classA.该函数直接在头文件中实现(与模板函数一样).现在我在 fileA.C (即不在头文件). 如果我现在从其他代码(可能也来自其他库)调用 SomeFunc(),它会调用通用版本还是专业化版本? 我现在有这个问题,类和函数存在于一个库中,由两个应用程序使用.一个应用程序正确地使用了专 ..
发布时间:2022-01-23 21:08:35 服务器开发

G ++未定义对类::函数的引用

我终于绝望了.因此,在我的 c++ 课程中,我们被指示使用类.我们会让头文件声明类和函数,而单独的 .cpp 文件实现它.事情应该是有效的,但他们没有,而且网络上没有任何解决方案似乎对我有用.为此,我在 linux 上使用 G++ 编译器,它似乎不适用于 IDE 或普通命令行. 我在 TBook.h 中遇到的错误是: /usr/lib/gcc/x86_64-linux-gnu/4.6/.. ..
发布时间:2022-01-23 21:08:25 服务器开发

使用 g++ 的符号可见性

我在 Linux/Mac 下编译了一个隐藏符号的 C++ 库.我已经为我的所有类使用了 _attribute_ ((visibility("hidden"))) 并使用选项 (-c -O2 -fPIC -MMD -MP-MF).在 Mac 下,使用 MacDependencies (http://code.google.com/p/macdependency/),这项工作做得很好,因为我只看到了我 ..
发布时间:2022-01-23 21:07:32 服务器开发

在 Ubuntu c++ 上找不到 gtk/gtk.h

我对编程比较陌生,尤其是在如何包含库和类似活动方面.过去我一直在使用 Python 进行编程,并且一直在使用 GTK 创建窗口,这也是我在使用 c++ 编程时打算做的事情.首先,这是我的代码: #include #include static void helloWorld (GtkWidget *wid, GtkWidget *win){GtkWidg ..
发布时间:2022-01-23 21:05:18 服务器开发

将 -rdynamic 链接器选项添加到 gcc/g++ 会影响性能吗?

我想在应用程序崩溃时获取堆栈跟踪.我知道 -rdynamic 选项可以使用函数名称获取完整的堆栈跟踪.但我担心是否会对我的应用程序的性能产生任何影响. 解决方案 是的,虽然它非常具体,通常不会引起关注. -rdynamic 选项指示链接器将运行时通常不需要的符号添加到符号表中.这意味着动态链接器需要在运行时清除更多(可能更多)符号以进行符号解析. 具体来说,由于基于 GNU 的 ..
发布时间:2022-01-23 21:01:24 服务器开发

当存在同名的共享库时,如何强制链接静态库

假设我有一个文件 main.cpp,它使用 libmath 中定义的 sin() 函数.还假设我们在同一目录中同时拥有 libmath.a 和 libmath.so.现在,如果我发出命令 g++ -o main main.cpp -lmath,Linux 的默认行为是链接到共享库 libmath.so.我想知道有没有办法强制程序与静态库 libmath.a 链接而不删除或移动共享库? 解决方 ..
发布时间:2022-01-23 21:01:17 服务器开发

使用 g++ 编译动态共享库

我正在尝试从 编译以下简单的 DL 库示例代码使用 g++ 的程序库-HOWTO.这只是一个示例,因此我可以学习如何使用和编写共享库.我正在开发的库的真实代码将用 C++ 编写. #include #include #include int main(int argc, char **argv) {无效*句柄;双(*余弦)(双);字符 * ..
发布时间:2022-01-23 21:00:15 服务器开发

如何为 Fedora 安装 g++?

如何为 Fedora Linux 安装 g++?我一直在搜索 dnf 命令来安装 g++ 但没有找到任何东西. 如何安装? 我已经安装了gcc 解决方案 您要查找的软件包名称容易混淆 gcc-c++. ..
发布时间:2022-01-23 20:59:46 服务器开发

如何查看目标文件中的符号?

如何查看 .o 文件中的符号?nm 对我不起作用.我使用 g++/linux. 解决方案 你可以使用强大的objdump来代替nm.有关详细信息,请参见手册页.试试 objdump -t myfile 或 objdump -T myfile.使用 -C 标志,您还可以像 nm 那样对 C++ 名称进行分解. ..
发布时间:2022-01-23 20:59:39 服务器开发

glfw 错误与 glfwWindowHint

我已经尝试过使用 this 教程,但没有成功.我不知道为什么它不起作用.我正在使用 Ubuntu 14.04 和 GNU G++ 命令. 代码: #include 诠释主要(无效){glfwInit();glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);glfwWindowHint(GLFW_CONTEXT_VERSIO ..
发布时间:2022-01-23 20:59:17 服务器开发

g++ 搜索/lib/../lib/,然后搜索/lib/

根据 g++ -print-search-dirs 我的 C++ 编译器正在许多目录中搜索库,包括... /lib/../lib/: /usr/lib/../lib/: /lib/: /usr/lib/ 天真地,/lib/../lib/ 似乎与 /lib/ 是同一目录 —lib 的父母将有一个名为 lib 的孩子,“那个人的父亲的儿子是我父亲的儿子的儿子"等等./usr/lib/ ..
发布时间:2022-01-23 20:55:22 服务器开发