LINUX下移植libjpeg库过程(关键字:-l -L -i ./configure参数解释)

本文详细介绍了如何在Linux下移植libjpeg库,包括源码下载、解压、配置、修改Makefile、编译或交叉编译的步骤。重点解析了configure参数,如--prefix、--enable-shared和--enable-static等,以及编译链接时的-I、-l和-L选项的用途。文章还讨论了部署动态链接库的位置选择和不同类型的库在编译和运行时的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

1、移植(源码下载、解压、配置、修改Makefile、编译或交叉编译 )

 

1.1 找到并分析、配置运行脚本文件

        1.1.1  一般linux下移植的库,第一步都是配置,之后才能编译,解压后一般都能找类似config脚本文件,配置就是运行这个脚本。比如libjpeg库,运行脚本时,它会提示你运行时添加参数去配置 ./config --XXX等等。

        解释:这一步一般用来生成 Makefile,为下一步的编译做准备,你可以通过在 configure 后加上参数来对安装进行控制,比如代码:./configure –prefix=/usr 意思是将该软件安装在 /usr 下面,执行文件就会安装在 /usr/bin (而不是默认的 /usr/local/bin),资源文件就会安装在 /usr/share(而不是默认的/usr/local/share)。同时一些软件的配置文件你可以通过指定 –sys-config= 参数进行设定。有一些软件还可以加上 –with、–enable、–without、–disable 等等参数对编译加以控制,你可以通过允许 ./configure –help 察看详细的说明帮助

1.1.2  ./configure --prefix=/opt/libdecode --exec-prefix=/opt/libdecode --enable-shared --enable-static -build=i386 --host=arm

 

参数解释:

        

<think>嗯,用户遇到了一个错误,说在运行../Qt/configure时提示“没有那个文件或目录”。我需要先分析可能的原因。首先,用户当前的路径是yuerui@yuerui-vmwarevirtualplatform:~/Qt/qt-build$,然后尝试执行上级目录中的Qt文件夹下的configure脚本。也就是说,他们期望../Qt/configure存在。 可能的情况有几个:第一,确实没有这个configure文件。这可能是因为用户没有正确下载Qt源码,或者源码包中的configure脚本没有被正确解压或放置。第二,路径写错了,可能实际的路径不是../Qt,而是其他位置。比如,用户可能把Qt源码放在了其他地方,或者目录结构不同。第三,文件权限问题,虽然错误提示是“没有那个文件”,但如果是权限问题,可能会有不同的提示,所以可能性较低,不过也不能完全排除。 接下来,我需要回忆Qt的编译流程。通常,Qt的编译需要从源码开始,用户需要先下载源码包,解压,然后创建一个构建目录,进入该目录后运行configure。用户当前的目录是~/Qt/qt-build,然后执行../Qt/configure,这意味着configure应该位于~/Qt目录下的Qt子目录中?或者可能用户将源码放在~/Qt目录里,而构建目录是qt-build。这可能结构是~/Qt/configure,而构建目录是~/Qt/qt-build,这时候执行../Qt/configure是否正确呢?或者可能用户的目录结构有误? 假设用户下载了Qt源码,解压到了~/Qt目录下,那么正确的configure脚本应该在解压后的源码目录中。例如,如果用户下载的是qt-everywhere-src-5.15.9.tar.xz,解压后会生成一个类似qt-everywhere-src-5.15.9的目录,里面应该有configure脚本。因此,用户可能没有正确设置路径。比如,如果源码解压到~/Qt/qt-everywhere-src-5.15.9,那么正确的路径应该是../qt-everywhere-src-5.15.9/configure,而不是../Qt/configure。 此外,用户使用的命令是../Qt/configure,这表示他们期望在上一级目录中的Qt子目录里有configure文件。所以需要检查是否存在这个文件。用户可能需要确认Qt源码是否正确放置,或者是否解压正确。如果用户下载的是在线安装工具,可能没有包含configure脚本,这时候需要使用正确的源码包。 可能的解决方案包括:检查路径是否正确,确认Qt源码是否存在,确认configure脚本是否存在,确认是否有执行权限,以及确认是否下载的是正确的源码版本。例如,用户可能下载的是在线安装程序而不是源码包,或者解压时目录结构发生了变化。 另外,用户使用的参数是否正确?比如-prefix指定安装目录,其他参数-platform、-opensource等,这些是否正确?但主要问题还是configure脚本不存在,所以需要先解决路径问题。 总结下来,用户需要做的是: 1. 确认Qt源码是否正确下载和解压。 2. 检查configure脚本的实际路径。 3. 确保执行命令的路径正确。 4. 如果有必要,调整命令中的路径或源码目录结构。</think>根据您的错误提示 `bash: ../Qt/configure: 没有那个文件或目录`,以下是分步分析和解决方案: --- ### **原因分析** 1. **路径错误** 您当前位于 `~/Qt/qt-build` 目录,尝试执行 `../Qt/configure`。这意味着: - 预期路径:`~/Qt/qt-build/../Qt/configure` → `~/Qt/configure` - 但系统中 `~/Qt/configure` 文件不存在。 2. **缺少 Qt 源码** `configure` 是 Qt 源码编译的入口脚本,可能未正确下载或解压源码。 --- ### **解决方案** #### **第一步:确认源码目录结构** 1. **检查 Qt 源码是否已下载** - 从 [Qt 官方下载页面](https://download.qt.io/official_releases/qt/) 获取对应版本的源码包,例如 `qt-everywhere-src-5.15.9.tar.xz`。 - 解压源码包到 `~/Qt` 目录: ```bash tar -xvf qt-everywhere-src-5.15.9.tar.xz -C ~/Qt ``` 2. **验证 `configure` 文件是否存在** ```bash ls ~/Qt/qt-everywhere-src-5.15.9/configure ``` --- #### **第二步:调整命令路径** 假设源码解压到 `~/Qt/qt-everywhere-src-5.15.9`,则正确路径应为: ```bash ../qt-everywhere-src-5.15.9/configure [参数] ``` **完整命令示例**: ```bash cd ~/Qt/qt-build ../qt-everywhere-src-5.15.9/configure \ -prefix /opt/Qt5.15.9 \ -platform linux-g++ \ -opensource -confirm-license \ -nomake examples -nomake tests \ -qt-zlib -qt-libpng -qt-libjpeg \ -xcb -xcb-xlib -system-freetype ``` --- #### **第三步:权限问题(可选)** 如果 `configure` 文件存在但无执行权限: ```bash chmod +x ../qt-everywhere-src-5.15.9/configure ``` --- ### **补充说明** - **参数含义**: - `-prefix /opt/Qt5.15.9`: 安装到系统目录 `/opt/Qt5.15.9`(需 `sudo` 权限)。 - `-platform linux-g++`: 使用 GCC 编译器。 - `-opensource -confirm-license`: 使用开源协议并自动确认。 - `-nomake examples -nomake tests`: 跳过编译示例和测试代码。 - `-qt-zlib -qt-libpng -qt-libjpeg`: 使用 Qt 内置的 zlib、PNG、JPEG - `-xcb -xcb-xlib -system-freetype`: 启用 X11 支持和系统 Freetype --- ### **操作流程图** ```plaintext 下载 Qt 源码 → 解压到 ~/Qt/qt-everywhere-src-5.15.9 → 进入 ~/Qt/qt-build → 执行正确路径的 configure 命令 ``` 执行成功后,继续运行 `make` 和 `make install` 即可完成编译安装。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值