设置可以在当前目录查找可执行文件的方法

本文详细介绍了如何在Linux系统中为特定用户配置环境变量,使用户可以在当前目录下找到并执行程序,同时解决了.so文件的路径问题。
建立一个新用户test5,指定用户的宿主目录为/home/test5
useradd -d /home/test5 test5


如何让linux在当前目录下找到可执行程序
第一步,没有参数的cd命令,代表回到用户的宿主目录
cd
第二步,打开宿主目录下的.bash_profile文件
vi .bash_profile
第三步,在PATH后面加:.代表在当前目录下找可执行文件
PATH=$PATH:$HOME/bin:.

第四步,vi保存退出
:wq


第五步,让.bash_profile生效
. .bash_profile


每个用户都有各自的.bash_profile,


当前目录下使用so文件需要在这最下面添加一行

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.

一定要注意添加后面的冒号和点

### Qt 设置可执行文件运行时目录的方法 在 Qt 中,设置可执行文件的运行时目录可以通过 `pro` 文件中的变量进行配置。以下是具体方法和相关配置: #### 1. 使用 `DESTDIR` 指定生成的可执行文件路径 `DESTDIR` 是一个 qmake 变量,用于指定最终生成的可执行文件存放的目录。例如,如果希望将生成的可执行文件放在当前项目的 `bin` 目录下,可以在 `.pro` 文件中添加以下内容: ```plaintext DESTDIR = $$PWD/bin ``` 这会确保编译后的可执行文件被放置到项目的 `bin` 文件夹中[^1]。 #### 2. 配置 Debug 和 Release 模式的输出路径 可以分别设置 Debug 和 Release 模式下的生成路径。例如: ```plaintext CONFIG(release, debug|release) { DESTDIR = $$PWD/release } else { DESTDIR = $$PWD/debug } ``` 上述代码根据构建模式自动选择不同的输出目录[^2]。 #### 3. 设置临时文件的路径 除了可执行文件的输出路径外,还可以设置其他中间文件的路径,例如: - **MOC 文件路径**:`MOC_DIR = $$PWD/temp/moc` - **RCC 文件路径**:`RCC_DIR = $$PWD/temp/rcc` - **UI 文件路径**:`UI_DIR = $$PWD/temp/ui` - **目标文件路径**:`OBJECTS_DIR = $$PWD/temp/obj` 这些路径可以避免中间文件污染项目根目录,同时便于组织和清理[^1]。 #### 4. 添加库文件路径 如果项目依赖外部库文件,可以使用 `LIBS` 变量指定库路径。例如: ```plaintext LIBS += -L$$PWD/libs -lmylib ``` 这会告诉链接器在 `libs` 文件夹中查找名为 `mylib` 的库文件[^1]。 #### 5. 打包可执行文件及其依赖 为了使生成的可执行文件能够独立运行,需要使用 `windeployqt` 工具复制所需的动态链接库(DLL)。假设生成的可执行文件名为 `myapp.exe`,可以在命令行中运行以下命令: ```bash windeployqt myapp.exe ``` 此命令会将所有必要的 Qt 库文件复制到可执行文件所在的目录中[^4]。 ### 示例配置 以下是一个完整的 `.pro` 文件示例,展示了如何设置可执行文件的运行时目录及相关路径: ```plaintext # 设置 Debug 和 Release 模式下的输出目录 CONFIG(release, debug|release) { DESTDIR = $$PWD/release } else { DESTDIR = $$PWD/debug } # 设置临时文件路径 MOC_DIR = $$PWD/temp/moc RCC_DIR = $$PWD/temp/rcc UI_DIR = $$PWD/temp/ui OBJECTS_DIR = $$PWD/temp/obj # 添加库路径 LIBS += -L$$PWD/libs -lmylib ``` ### 注意事项 - 确保路径使用的是英文字符,以避免因路径问题导致编译失败。 - 在 Windows 系统上,使用 `$$PWD` 表示当前项目的绝对路径。 - 如果需要跨平台支持,建议测试不同操作系统下的路径配置是否正常[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值