c++ - 体系结构 x86_64 : _memalign: TCMalloc 的 undefined symbol

标签 c++ macos linker-errors x86-64 tcmalloc

我做了一些更改,我正在尝试编译 google-perf(TCMalloc)在 Mac OS X Yosemite 10.10.3 上,我按照步骤返回此处 Install gperf .但是,我遇到以下链接错误。

./autogen.sh basically autoreconf -i -> successful no error

./configure -> successful no error

make -> below error

libtool: link: g++ -D_THREAD_SAFE -Wall -Wwrite-strings -Woverloaded-virtual -Wno-sign-compare -fno-builtin-malloc -fno-builtin-free -fno-builtin-realloc -fno-builtin-calloc -fno-builtin-cfree -fno-builtin-memalign -fno-builtin-posix_memalign -fno-builtin-valloc -fno-builtin-pvalloc -Wno-unused-result -fno-builtin -g -O2 -D_THREAD_SAFE -o .libs/tcmalloc_minimal_unittest src/tests/tcmalloc_minimal_unittest-tcmalloc_unittest.o src/tests/tcmalloc_minimal_unittest-testutil.o -Wl,-bind_at_load  ./.libs/libtcmalloc_minimal.dylib ./.libs/liblogging.a
Undefined symbols for architecture x86_64:
  "_memalign", referenced from:
      testing::RunAllTests(int, char**) in tcmalloc_minimal_unittest-tcmalloc_unittest.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我安装了 gcc 但没有帮助。

谁能帮我解决这个问题?

最佳答案

我不是 OSX 专家。我确实可以访问较旧的 OSX 版本,我会不时在其中进行测试。但作为这段代码的维护者之一,我确实知道一点 gperftools。因此,让我尝试为您提供一些想法。

  1. 请确保在没有您的更改的情况下编译所有内容。 IE。让我们将您的更改排除在问题的潜在来源之外。

  2. 查看源版本 (.tar.gz) 是否编译。 IE。它已经包含配置,它捆绑了已知可以工作的 autoconf 和 automake 和 libtool。所以只需将 .tar.gz 版本下载到单独的位置,解压,./configure && make(因此没有 ./autogen.sh 步骤)并查看它是否有效。

您遇到的问题可能是较新版本的 OSX 特有的问题(我认为优胜美地是最新的但不确定,因为我不喜欢苹果的东西)。避免这种可能性的一种方法是在 GNU/Linux 虚拟机下测试您的更改(同时继续调查为什么事情在 OSX 上不起作用)。

关于c++ - 体系结构 x86_64 : _memalign: TCMalloc 的 undefined symbol ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32768189/

相关文章:

c++ - 如何在 Rcpp/C++ 中将函数作为参数传递?

C++:最常见的漏洞是什么以及如何避免它们?

objective-c - 如何在 NSTexturedSquareBezelStyle 按钮周围绘制边框

macos - Mac 终端安装程序 : Error trying to locate volume at/Applications

xcode - cvCreateTrackbar()不起作用

ios - 体系结构 x86_64 的重复符号同时从 CocoaPods 添加 Pod

c++ - SQLite Visual Studio 链接器错误

c++ - shared_from_this 导致 bad_weak_ptr

c++ - 函数签名中未扩展的参数包

ios - 链接器命令失败 Facebook Sdk