用ar编译的存档,手动编译,ld找不到
Compiled archive with ar, compiles manually, ld does not find
>我编译了一个hello world库来测试我的构建设置:
// hw.cpp
#include<iostream>
#include"hw.h"
void hw(){ std::cout << "hw"<<std::endl; }
// hw.h
void hw();
// main.cpp
#include"hw.h"
int main(int argv, char ** argc){
hw();
return 0;
}
// BUILD COMMAND (ommitting proj directories, replacing with '.')
g++ -I. -o hw.o hw.cpp
// Archive Command
ar -rcs hw.a hw.o
// Compile (works as expected)
g++ -I. -o hw main.cpp hw.a
// Compile with ld
g++ -I. -L. -o hw main.cpp -lhw
结果是失败。 我尝试过绝对路径,查看了 ld 文档;总的来说,试图解决这个问题的时间。
这到底是怎么回事?
确切的错误代码:
/usr/bin/ld: cannot find -lhw
collect2: error: ld returned 1 exit status
我猜你的错误消息,但在自己尝试你的代码后,我认为你的问题是 ld 找不到你的库。库必须以前缀lib
命名。将hw.a
重命名为libhw.a
,它应该可以工作。
相关文章:
- C++ 中的编译错误:未定义对"主"的引用 collect2:错误:ld 返回 1 个退出状态
- 编译 Boost 时在 OS X 上的"ld:未知选项:-soname"
- 编译问题:在函数"_start"中:未定义对"主"的引用 collect2:错误:ld 返回 1 个退出状态
- LD:尝试编译项目时找不到架构x86_64符号
- Cmake无法在qt-creater/collect2上编译简单的测试程序:错误:ld
- 用ar编译的存档,手动编译,ld找不到
- g++ 编译错误消息:/usr/bin/ld:找不到 -LSSL
- 编译问题LD:不满意的符号
- C++编译错误:ld:找不到体系结构x86_64 clang 的符号:错误:链接器命令失败,退出代码为 1(使用 -v
- 在 MacOSX 上编译 OpenGL 程序时出错('ld:找不到 -lopengl32 的库)
- 在编译系统中,链接器(ld)如何知道将myprogram.o链接到谁
- 在mac-ld上编译zathura pdf插件出错
- 编译 fortran 文件"/usr/bin/ld: errno: TLS definition in /lib/libc.so.6"
- 在 Mac 上编译动态库:ld:找不到用于架构x86_64的符号
- 在 OS X 上编译lsd_slam会引发链接错误 ld:找不到 -lGL 的库
- 编译时出现错误"collect2:ld 返回 1 个退出状态"
- 在 Eclipse 中编译时出错:ld:找不到架构x86_64的符号
- ld:编译 C++ 时在体系结构x86_64找不到符号
- 使用/usr/bin/ld编译代码:找不到-lipicv
- C++编译错误,需要帮助-ld:找不到体系结构x86_64的符号