`
purpen
  • 浏览: 795473 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ld: symbol(s) not found for architecture x86_64

阅读更多

GraphicsMagic 有一个Nodejs的客户端:

https://github.com/aheckmann/gm

简直就是nodejs处理图片的神器呀!

但是使用它之前必须得安装GraphicsMagic,于是开始了痛苦的折腾之旅.

开源系统或者组件就是这样,编译安装一个东西,同时又依赖别的组件,又要编译、安装... 真的很蛋疼...

GraphicsMagic根据使用功能的不同,依赖不同的组件,我需要的只是对jpeg和png进行简单的图片处理(缩放、裁剪啊什么的,不过它的功能可以更加强大),主要依赖了两个组件:

libjpeg-6b.tar.gz

libpng-1.4.7.tar.gz

首先必须先下载以上的两个组件,然后解压,然后./confiure 然后sudo make&make install

接着就可以安装GraphicsMagic了:

这里选择你需要的版本并下载。然后解压。在解压的目录里运行:

./configure CC=clang
     
make
     
sudo make install

 

注意confiure命令后面的CC=clang。它指定了编译器为Mac下推荐使用的clang。如果没有这个参数,Makefile将会使用系统默认的编译器进行编译,而这个编译器不是GraphicsMagic所推荐的,并且在make的过程中会出现以下错误:

Undefined symbols for architecture x86_64:
   
  "___builtin_object_size", referenced from:
   
      _BlurImageScanlines.omp_fn.6 in libGraphicsMagick.a(magick_libGraphicsMagick_la-effect.o)
   
      _XShearImage.omp_fn.0 in libGraphicsMagick.a(magick_libGraphicsMagick_la-shear.o)
   
      _YShearImage.omp_fn.1 in libGraphicsMagick.a(magick_libGraphicsMagick_la-shear.o)
   
ld: symbol(s) not found for architecture x86_64
   
collect2: ld returned 1 exit status
   
make[1]: *** [utilities/gm] Error 1
   
make: *** [all] Error 2

 

 

切记要在confiure的时候./configure CC=clang 呀,这个是哥血泪摸索出来的经验,希望奉献出来让大家少走弯路。

好,npm install gm

然后写一段nodejs的代码测试一下:

var gm = require('gm');
  
gm('./test.jpg')
  
.size(function(err, image){
  
    console.log(image.width, image.height);
  
});
分享到:
评论

相关推荐

    ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1

    今天编写一个简单的代码,报错了: ... for (uint32_t i = 0; i < SIZE; ++i) { _data[i] = new T[SIZE]; } } inline const uint32_t size() const { return SIZE; } T* operator[](uint32_

    Framework not found IOSurface for architecture arm64(不能设为免费?)

    在iOS应用开发中,"Framework not found IOSurface for architecture arm64" 是一个常见的构建错误,这通常发生在尝试编译或运行项目时,系统无法找到指定的架构(arm64)所需的IOSurface框架。该问题可能由多种原因...

    gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.gz

    gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.tar是由 Linaro 公司基于GCC推出的的ARM交叉编译工具。 可用于交叉编译64-bit Armv8 Cortex-A, little-endian目标中的裸机程序、u-boot、Linux kernel、...

    在Mac OS上自行编译安装Apache服务器和PHP解释器

    注意,如果你在编译过程中遇到“Undefined symbols for architecture x86_64”的错误,这通常意味着缺少某些库。在这种情况下,你需要找到相应的库并安装,或者查阅错误信息以获取解决方案。 整个编译过程可能需要...

    MinGW(x86_64-8.1.0-release-posix-sjlj-rt_v6-rev0.7z)

    这个压缩包“x86_64-8.1.0-release-posix-sjlj-rt_v6-rev0.7z”包含了MinGW针对x86_64架构的64位版本,版本号为8.1.0。让我们深入了解MinGW以及这个特定版本包含的内容。 首先,GCC是GNU项目的核心组成部分,它支持...

    gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf.tar.xz

    gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf.tar.xz是由 Linaro 公司基于GCC推出的的ARM交叉编译工具。可用于交叉编译32-bit Armv7 Cortex-A, hard-float, little-endian目标中的裸机程序、u-boot、Linux ...

    x86_64-8.1.0-win32-seh-rt_v6-rev0.zip

    标题 "x86_64-8.1.0-win32-seh-rt_v6-rev0.zip" 暗示的是一个针对x86_64架构的MinGW-w64工具链的发行版,版本号为8.1.0,用于在Windows 64位操作系统上编译C和C++源代码。这个压缩包是专门设计来生成64位Windows可...

    redis-5.0.14-1.el7.remi.x86-64.rpm安装包(含有部署手册)

    redis-5.0.14-1.el7.remi.x86_64.rpm安装包(含有部署手册) redis-5.0.14-1.el7.remi.x86_64.rpm安装包(含有部署手册) redis-5.0.14-1.el7.remi.x86_64.rpm安装包(含有部署手册) redis-5.0.14-1.el7.remi.x86_64.rpm...

    x86_64-13.2.0-release-posix-seh-ucrt-rt_v11-rev1.7z

    标题 "x86_64-13.2.0-release-posix-seh-ucrt-rt_v11-rev1.7z" 暗示这是一个针对x86_64架构的编译工具链的打包文件,主要用于Windows平台。这种工具链通常包括编译器、链接器以及其他构建C++应用程序所需的组件。...

    gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.gz

    标题中的“gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.gz”指的是一款由Linaro组织提供的GCC(GNU Compiler Collection)交叉编译器,版本号为6.3.1,发布于2017年5月。这个版本是针对x86_64架构的主机...

    compat-libstdc++-33-3.2.3(x86_64)

    在Linux环境中安装Oracle 11g时,会遇到一些特定的依赖性问题,其中之一就是"compat-libstdc++-33-3.2.3(x86_64)"。这个软件包是Oracle 11g在Linux系统上的一个重要先决条件,它的作用在于提供与Oracle二进制文件...

    gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz

    "x86_64_aarch64-linux-gnu"部分表示这是为64位的x86架构系统提供的,用于构建目标平台为Aarch64(也称为ARM64或AArch64)架构的Linux系统。"tar.xz"表明这个包是以tarball格式压缩的,并且使用XZ压缩算法。 描述中...

    gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabihf.tar.gz

    《深入理解arm-linux-gnueabihf交叉编译工具链——以gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabihf为例》 在软件开发领域,尤其是嵌入式系统开发中,交叉编译是一项至关重要的技术。它允许我们在一台强大的...

    gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar

    总之,GCC-Linaro 7.5.0-2019.12-x86_64_aarch64-linux-gnu交叉编译链是开发ARM64设备的有力工具,它使得开发者能够在强大的X86_64系统上完成对ARM设备软件的构建,从而简化流程,提高开发效率。理解和熟练使用交叉...

    oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm

    oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm --基础包,为了运行OCI、OCCI、JDBC-OCI 这几个应用程序; oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm --补充包/文件,是为了运行sql*plus...

    boost_linux_fPIC.rar

    /usr/bin/ld: common/ipc.o: relocation R_X86_64_32S against `cmd_handler' can not be used when making a shared object; recompile with -fPIC common/ipc.o: could not read symbols: Bad value

    oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm sqlplus安装包集合

    oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm --基础包,为了运行OCI、OCCI、JDBC-OCI 这几个应用程序; oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm --补充包/文件,是为了运行sql*plus...

    sshpass-1.06-2.el7.x86_64.rpm

    rpm -ivh sshpass-1.06-2.el7.x86_64.rpm 安装即可用

    oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm

    oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm --基础包,为了运行OCI、OCCI、JDBC-OCI 这几个应用程序; oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm --补充包/文件,是为了运行sql*plus...

Global site tag (gtag.js) - Google Analytics