问题描述:按照官网的步骤,进行如下操作
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下开发。
首先,你需要下载并安装cmake,这将帮助你在Windows上配置cppcms的构建环境。然后,解压pcre和zlib的二进制文件,这些库是cppcms运行所必需的。确保将它们的头文件和库文件路径添加到你的编译环境中。接着,从cppcms...
cppcms编译包x64版是一个专为64位Windows系统设计的开发包,它包含了一系列用于构建高性能Web应用程序的库和相关依赖项。这个压缩包主要用于在Win10 x64环境下,配合Visual Studio 2015 x64版本进行开发工作。cppcms...
2. 安装JD-GUI:在MAC上,通常是将下载的.dmg文件拖拽到"应用程序"目录中。 3. 运行JD-GUI:双击应用程序图标启动JD-GUI。 4. 反编译JAR文件:通过菜单栏选择"File" -> "Open File",然后选择需要反编译的JAR文件。 ...
在Mac操作系统上,一个常见的Java反编译工具是JD-GUI。JD-GUI是一款图形化界面的工具,它能够直观地显示类文件的源代码,而无需进行复杂的命令行操作。 标题中的"mac版本java反编译工具jd-gui"指的是专门为Mac OS...
以下是对Boost在Windows和Solaris平台上安装和编译的详细过程。 **Windows上的Boost安装和编译** 1. **下载Boost**: 首先,你需要访问Boost官方网站(https://www.boost.org/)下载最新的源代码包。下载完成后,...
在本文中,我们将深入探讨JD-GUI在Mac平台上的使用,以及它如何帮助开发者处理Java字节码。 JD-GUI是一款图形用户界面工具,它允许开发者直接查看和分析单个Java类文件的源代码,而无需进行复杂的命令行操作。这款...
"mac环境下-eclipse反编译插件"的标题表明我们讨论的是在苹果Mac操作系统上使用的Eclipse集成开发环境(IDE)中的反编译插件解决方案。 首先,我们要了解什么是反编译。反编译是将已编译的字节码(如Java的.class...
标签中提到的“.net”通常指的是Microsoft的.NET框架,这是一个用于构建各种类型应用程序的软件框架,与jsoncpp的编译过程在技术上没有直接关系,但可能是因为两者都在软件开发的范畴内,所以被一起提及。...
这个"ltp-3.4.0 mac编译包"可能是作者在Mac 10.14.3上编译好的LTP版本,对于不想从头编译的人来说,可以直接下载并尝试运行。然而,由于每个系统的具体环境差异,使用这个预编译包前最好先了解其编译和运行的条件,...
"openEuler 上编译安装 MLNX 驱动" openEuler 是一个基于 Linux 内核的操作系统,MLNX 驱动是 InfiniBand 高速互连技术的驱动程序。编译安装 MLNX 驱动是 openEuler 上实现高性能计算和高速存储的关键步骤。下面是 ...
在Linux系统上编译并安装CalculiX是一个涉及多个步骤的技术过程,CalculiX是一款开源的有限元分析软件,提供前处理(CGX)、求解器(CCX)和后处理(DX)等功能,适用于结构力学、热流体动力学等领域的计算。...
本文将详细讲解如何在集成开发环境(IDE)MyEclipse中安装反编译插件,以便能够查看.class文件的源码。 首先,我们要了解什么是反编译。反编译是将已编译的机器代码转换回源代码的过程。在Java世界里,由于字节码是...
Qt4安装与编译方法
Mac下的jad, 可以用来反编译class文件 完整版 MAC下Java 反编译利器 JD-GUI/Jad/JadClipse MAC下Java 反编译利器 JD-GUI/Jad/JadClipse mac java反编译 Mac 使用Jad 反编译class文件
交叉编译是指在一个平台上编译出可以在另一个平台上运行的代码。在嵌入式开发领域,由于目标平台资源有限,通常采用这种方法。这里我们将重点介绍如何安装`arm-linux-gcc`交叉编译器,并验证其正确性。 #### 安装...
本资源可结合我的文章《详解CentOS7下编译安装Redis5.x设置开机启动及修改端口(含redis需编译安装包和redis免编译安装包)》配合使用,同时也可单独去使用。包含redis3.0.7免编译版安装包,redis5.0.7离线安装包,...
在本文中,我们将深入探讨如何在Eclipse集成开发环境中安装反编译插件,以便能够查看Java字节码并理解其工作原理。反编译插件对于开发者来说是一个宝贵的工具,它可以帮助我们分析已编译的类文件,尤其是在处理开源...
在安装过程中,需要注意目标路径的权限问题。如果目标路径需要 root 权限,可以使用 `sudo` 命令来提升权限。例如,输入 `sudo make install PREFIX=/usr/local/bzip2` 命令。 GCC/GDB 是编译和调试 bzip2 源代码的...