Ubuntu 11.10链接perftools库

2024-02-11

我无法让 Ubuntu 11.10 中的 gcc 正确链接到 google perftools -lprofiler。 问题似乎是链接器丢弃了程序中未直接使用的库。

一个例子会有所帮助。

我们称之为 main.cpp:

#include <math.h>

int main()
{
  double value;
  for (int i=0; i < 1000000; i++)
  {
    for (int j=0; j < 1000; j++)
      value = sqrt(100.9);
  }

  return 0;
}

编译使用:

g++ -c main.cpp -o main.o
g++ main.o -o main -lm -lprofiler

使用 ldd ./main 检查可执行文件:

  linux-vdso.so.1 =>  (0x00007fff5a9ff000)
  libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f32bc1c9000)
  /lib64/ld-linux-x86-64.so.2 (0x00007f32bc593000)

通常,我会运行:

CPUPROFILE=/tmp/profile ./main

产生配置文件输出。但由于配置文件库未链接,因此不会生成配置文件输出。

我已确保探查器库位于我的搜索路径中,并尝试直接链接共享库和静态库。

上述测试在 Ubuntu 10.04、Ubuntu 10.10、Ubuntu 11.04、SUSE 12.1 和 Fedora 16 上运行良好。

此外,一旦我包含使用探查器的函数调用(例如 ProfilerStart() 和 ProfilerStop()),探查器库就会链接到可执行文件中。

关于如何让 gcc 链接到探查器库中的任何想法?

Thanks.


g++ main.o -o main -lm -lprofiler

正如 another.anon.coward 评论的那样,你很可能成为你的受害者g++ using --as-needed链接器标志。试试这个:

g++ main.o -Wl,--no-as-needed -lprofiler -Wl,--as-needed

Notes:

  1. g++已经添加了-lm,无需再次添加
  2. 转身很重要--as-needed回来。不这样做可能会导致您链接到您并不真正需要的其他库。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu 11.10链接perftools库 的相关文章

随机推荐

  • 在 Intellij IDEA 中查找和替换文本

    我有什么 超过 100 行具有相同结构的字段 var type1Name String
  • 如何使用 cmake 将参数传递给 ranlib?

    我如何将参数传递给ranlib使用 CMake 编译静态库时 I tried set target properties myLibrary STATIC LIBRARY FLAGS plugin usr lib gcc x86 64 li
  • 维基百科文本下载

    我正在寻找为我的大学项目下载完整的维基百科文本 我是否必须编写自己的蜘蛛才能下载此内容 或者是否有在线维基百科的公共数据集 为了给你一些我的项目的概述 我想找出我感兴趣的几篇文章中有趣的单词 但是为了找到这些有趣的单词 我计划应用 tf i
  • spring 作用域代理 bean

    谁能解释一下弹簧的用途 ScopedProxy注解 我thought它与会话范围的 bean 有关 但我不太确定是什么 在我对范围的使用中 我使用了会话范围的 bean 但没有使用 ScopedProxy注释 或没有 aop 作用域代理 所
  • CSS 在某个点改变背景颜色

    我希望当某个元素进入视图时整个网站的背景从白色变为黑色 因此 当您滚动元素时 背景会变为黑色 当您向后滚动时 我希望页面的背景颜色变回白色 谢谢你 HTML div class colorChange div
  • Google Places API - getQueryPredictions 受国家/城市/州限制吗?

    下面是 google 给出的 getQueryPredictions 示例 service getQueryPredictions input pizza near callback 有没有办法限制特定国家 城市 州的结果 其他功能 组件有
  • .NET 写入 PCAP 文件

    All 我花了一天的大部分时间查看各种 PCAP 库 在我承诺编写 PCAP 编写器之前 我想描述一下我的场景并征求意见 我有一个客户要求我提供一项服务来读取 pcap 文件并将数据包写入他们选择的数据库中 然后 客户端可以查询数据库 日期
  • 从多选ListView返回值

    编辑 好的 我找到了解决方案 不知道这是正确的解决方案 但它确实可以正常工作 添加到下面的代码中 我试图允许用户从清单中选择多个目录 并在单击 提交 按钮后返回它们 这是我的代码片段 它使用 sdcard 上的所有目录填充 ListView
  • 通过特定属性的值在数组中搜索对象的最有效方法

    实现搜索方法的最快 最有效的方法是什么 该方法将返回具有限定条件的对象id 示例对象数组 array object id gt one color gt white object id gt two color gt red object
  • 在字符串中每两个字符后插入冒号(:) 的方法是什么?

    我试图弄清楚 INPUT String data 506313B5EA3E OUTPUT String data 50 63 13 B5 EA 3E 我尝试使用 java util Arrays toString data split lt
  • 无法打开文件(在项目“Pods”的目标“React”中)(在目标“React”中)

    我有一个reactNative项目 我正在尝试在最新的xcode 10 1中运行 但是在我构建时它抛出了两个错误 error Users ios Pods Target Support Files React React xcconfig
  • 在 Eclipse 中调试 JavaScript

    如何在 Eclipse 中调试 JavaScript 我使用的是 Eclipse 3 2 1 每次我单击侧面时 它都会提供添加书签的选项 但没有断点 有人可以帮助我吗 2015年 在Eclipse中调试JavaScript至少有六种选择 自
  • Apache Kafka 和 Avro:org.apache.avro.generic.GenericData$Record 无法转换为 com.harmeetsingh13.java.Customer

    每当我尝试从 kafka 队列读取消息时 我都会收到以下异常 error run main 0 java lang ClassCastException org apache avro generic GenericData Record
  • if else 不检查 Python 中的两个条件

    我希望根据特定条件创建新列 pred n 条件如下 如果年份小于或等于当前年份且月份小于当前月份 则 pred n 应等于 yhatpct 否则应为yhatpct ft 尝试以下语法 if dfyz year x lt datetime n
  • FCM 服务不可用 nack

    我有一个 python3 程序 可以成功连接到 FCM XMPP 测试服务器 但是 发送 JSON 后 它返回给我一个SERVICE UNAVAILABLE每次nack消息 上周的同一段代码运行得非常好 The 文档 https fireb
  • Django 模型管理器.py 和 models.py

    鉴于以下情况 模型 py from managers import PersonManager from django db import models class Person models Model first name models
  • 电对模式和 Python 三引号

    有没有办法在电对模式下启用自动配对Python三引号 这可以在自动配对模式下使用进行配置autopair python triple quote action 是否有类似的方法可以在电对模式下启用此功能 您可以执行以下操作 defun py
  • Rails 在开发模式下不会记录模板错误

    我的 Rails 3 2 9 app 没有向我显示任何有关错误的具体错误信息在模板中 无论我使用 haml 还是 erb 我总是会得到 我们很抱歉 但有些不对劲 事实上 韦布里克is in 发展模式 如果我的模型或控制器出现错误 我会看到完
  • 如何在 GDAL ruby​​ 绑定中显式关闭数据集?

    我在用GDAL https gdal org 1 7 1 从ruby1 9生成GeoTIFF文件 在里面tutorial https gdal org tutorials raster api tut html他们建议使用 GDALClos
  • Ubuntu 11.10链接perftools库

    我无法让 Ubuntu 11 10 中的 gcc 正确链接到 google perftools lprofiler 问题似乎是链接器丢弃了程序中未直接使用的库 一个例子会有所帮助 我们称之为 main cpp include