C++ 编译报 error: cannot find -lmywindow

如果编译(ctrl+B)项目的时候,报.pro里的LIBS里的库找不到,

:-1: error: cannot find -lmywindow

1.查看 .pros里的 LIBS的路径,查看对应文件夹里的内容是否存在我们在 .pro里引用的库文件
 
 
 
我们安装的虚机是64位的,所以 .pro里的 SRCDIR对应的是 linux64文件夹
 
当我们进入后发现这个文件夹下只有 3rd ,这是系统自带的第三方库,并没有我们编译所需的库
 
 
因为这个下面只有系统自带的第三方库,而我们自己开发的库,是放在 /xx/lib/* 下的,所以为了编译的时候,按照 .pro-L\$\${SRCDIR}/lib/\$\${PLATFORM}路径仍然可以编译,需要做一下软链接,
就是在 -L\$\${SRCDIR}/lib/\$\${PLATFORM}路径里添加一下连接,让代码编译时能从该路径下跳转到实际路径:
 
ln -s /xx/lib/* /xx/source/lib/linux64/   (ln -s 编译指定的目录    实际库所在的目录)
 
创建软链接后,会在文件夹下多出红框外的超链接
 
 
 
 
 

此时再编译,出现绿色框说明编译完成

 
 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
这个错误信息是在使用C或C++编译程序时遇到的,特别是涉及到链接阶段(linking),具体来说是`ld` (linker) 遇到了 `-lcurl` 但找不到`libcurl`库。`libcurl`通常是一个开源的库,用于处理HTTP和各种网络协议,比如FTP、SMTP等。 错误分为两部分: 1. `ihf/bin/ld: cannot find -lcurl` 表明链接器在尝试链接时找不到名为`libcurl.a` 或 `libcurl.so`(对于静态链接和动态链接库的分别)的`curl`库文件。`-lcurl` 是告诉链接器连接`libcurl`库的命令。 2. `collect2: error: ld returned 1 exit status` 表示链接过程失败,因为整个链接操作的返回码是1,这通常意味着出现了链接错误。 要解决这个问题,你可以尝试以下步骤: 1. **检查库是否已安装**:确保`libcurl`库已经正确安装,并且系统能够找到它。对于Linux,它可能在`/usr/lib`或`/usr/local/lib`目录下。 2. **检查库路径设置**:检查编译时的环境变量,如`LD_LIBRARY_PATH`或`DYLD_LIBRARY_PATH`,确保它们包含了`libcurl`的路径。 3. **添加库依赖**:在编译选项中添加 `-L` 参数来指定库的搜索路径,例如 `-L/usr/local/lib`。 4. **链接时指定完整路径**:如果`libcurl`在其他位置,可以直接使用完整路径 `-l/path/to/libcurl.a` 或 `-l/path/to/libcurl.so`。 5. **更新Makefile或构建脚本**:如果你是在使用Makefile,确保`libcurl`的链接已经被正确配置。 相关问题: 1. `libcurl`是什么库?它的作用是什么? 2. 如何在Linux中查找和安装缺失的库? 3. 对于C++项目,如何在CMakeLists.txt中正确链接外部库?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高考我军

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值