问题描述:按照官网的步骤,进行如下操作
1. tar xzvf cppcms-1.0.1.tar.gz
2. cd cppcms-1.0.1
3. mkdir build
4. cd build
5. cmake -DCMAKE_INSTALL_PREFIX=/opt/local ..
编译过程中,出现了如下错误信息
Linking CXX shared library libbooster.dylib
Undefined symbols for architecture x86_64:
"_libiconv_close",
referenced from:
booster::locale::conv::impl::iconverter_base::~iconverter_base()in codepage.cpp.o booster::locale::conv::impl::iconverter_base::~iconverter_base()in codepage.cpp.o
⋯⋯
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
make[2]: *** [booster/libbooster.0.0.0.dylib] Error 1
make[1]: *** [booster/CMakeFiles/booster.dir/all] Error 2
make: *** [all] Error 2
问题解决:
乍看编译错误信息,很有可能被“symbol(s) not found for architecture x86_64
”误导,因为看到这句话还以为系统中的库函数接口是32bit的,而非cppcms所要求的64bit的。于是乎,动手查询libiconv 64bit库,废了一番周折也没查到64位的库函数,倒是很容易找到32位的库。心想,我的macbook pro肯定是32位的(根据安装mysql的经验,足以判断出我的系统是32位的,而不是64位的)所以不如所幸编译安装下载的32位的libiconv库吧。
这里插句,我是如何知道是libiconv库的,因为在编译错误中提示_libiconv_close的函数调用时出现的编译错误,所以google一下这个函数,就知道来自libiconv库了。这个库是gnu开源的字符集转换库。如果正常在linux上, 当然就是老套的编译安装步骤了(./configure --prefix=.., make, make install). 但是在mac上,我使用了macports。
1. port search libiconv
2. sudo port install libiconv
安装完毕后,重新进行cppcms的编译安装过程,安装顺利完成。
结论:实际上编译错误x86_64的编译错误给予我一个误导信息,通常这种错误是因为系统缺少安装cppcms所需要的库。建议,按照官网的要求,将必需的和推荐库,甚至可选的库一并安装到系统后,再编译安装cppcms.
分享到:
相关推荐
CPPCMS是一个C++ WEB库, 这个库在windows下编译的话会遇到很多问题, 而且会有VS版本兼容问题, 编译过程中要依赖很多工具。 上传一份打包好的库文件, 内部有使用说明。省去了配置编译的时间,方便在windows下开发。
在Mac操作系统上,一个常见的Java反编译工具是JD-GUI。JD-GUI是一款图形化界面的工具,它能够直观地显示类文件的源代码,而无需进行复杂的命令行操作。 标题中的"mac版本java反编译工具jd-gui"指的是专门为Mac OS...
以下是对Boost在Windows和Solaris平台上安装和编译的详细过程。 **Windows上的Boost安装和编译** 1. **下载Boost**: 首先,你需要访问Boost官方网站(https://www.boost.org/)下载最新的源代码包。下载完成后,...
综上所述,这个“最新mac版本android反编译工具包”是MAC用户进行Android应用逆向工程的利器,集成了从解析资源到查看源代码的全套流程,对于开发者来说,无论是为了学习、调试还是其他合法目的,都是不可或缺的工具...
mac下java反编译工具jd-gui 1.4.0mac下java反编译工具jd-gui 1.4.0mac下java反编译工具jd-gui 1.4.0mac下java反编译工具jd-gui 1.4.0mac下java反编译工具jd-gui 1.4.0mac下java反编译工具jd-gui 1.4.0mac下java反...
这个"ltp-3.4.0 mac编译包"可能是作者在Mac 10.14.3上编译好的LTP版本,对于不想从头编译的人来说,可以直接下载并尝试运行。然而,由于每个系统的具体环境差异,使用这个预编译包前最好先了解其编译和运行的条件,...
"openEuler 上编译安装 MLNX 驱动" openEuler 是一个基于 Linux 内核的操作系统,MLNX 驱动是 InfiniBand 高速互连技术的驱动程序。编译安装 MLNX 驱动是 openEuler 上实现高性能计算和高速存储的关键步骤。下面是 ...
本文将详细讲解如何在集成开发环境(IDE)MyEclipse中安装反编译插件,以便能够查看.class文件的源码。 首先,我们要了解什么是反编译。反编译是将已编译的机器代码转换回源代码的过程。在Java世界里,由于字节码是...
Qt4安装与编译方法
本资源可结合我的文章《详解CentOS7下编译安装Redis5.x设置开机启动及修改端口(含redis需编译安装包和redis免编译安装包)》配合使用,同时也可单独去使用。包含redis3.0.7免编译版安装包,redis5.0.7离线安装包,...
在本文中,我们将深入探讨如何在Eclipse集成开发环境中安装反编译插件,以便能够查看Java字节码并理解其工作原理。反编译插件对于开发者来说是一个宝贵的工具,它可以帮助我们分析已编译的类文件,尤其是在处理开源...
标题 "myeclipse8.5安装反编译插件" 提到的是在MyEclipse 8.5这个集成开发环境中安装反编译插件的过程。MyEclipse是Eclipse的一个扩展,主要用于Java、J2EE、移动应用等的开发。反编译插件允许开发者查看和理解已...
在Mac上安装apktool非常简单,通常可以通过Homebrew包管理器完成。首先确保已经安装了Homebrew,然后在终端中输入以下命令: ```bash brew install apktool ``` 一旦安装完成,你可以使用apktool对任何APK文件进行...
本文主要针对OpenMC程序(0.10.0版本)在Ubuntu 18.04操作系统上的编译与安装进行详述,涵盖两种方法:conda-forge安装法和源码编译安装法。 **3.1 编译方法介绍** ### 3.1.1 Conda-forge安装方法 1. **下载与...
同时,在安装过程中,可以选择一些不必要安装的选项。 二、编译 Intel FFTW3 VASP 5.4.4 的编译需要 FFTW3 的支持,因此需要编译 Intel FFTW3。进入 Intel 根目录(默认是 /opt/intel/compilers_and_libraries_...
在Mac环境下编译POCO库,特别是当需要包含OpenSSL库时,需要遵循一系列步骤,因为这涉及到多个库的配置和编译。首先,我们来详细了解如何编译OpenSSL库,然后是POCO库。 一、编译OpenSSL库 1. 下载OpenSSL源代码:...
Codeblocks+wxWidgets安装及编译
在Mac上安装和使用这些工具通常是通过下载对应的应用程序包或者使用Homebrew(一个包管理器)来安装命令行工具。例如,使用Homebrew安装JAD可以通过运行以下命令: ```bash brew tap homebrew/cask brew cask ...