c++ -/usr/bin/ld 找不到 -l<nameOfLibrary>

标签 c++ linux ubuntu g++

我写了一些程序,并尝试使用 g++ 编译它们,因此,

$ g++ minIni.c device_datum.cpp fanuc_axis.cpp fanuc_path.cpp service.cpp condition.cpp cutting_tool.cpp string_buffer.cpp logger.cpp client.cpp server.cpp adapter.cpp fanuc_adapter.cpp FanucAdapter.cpp -L/usr/local/lib/ -lfwlib32 -lpthread -o adapter

我不断收到以下错误:

/usr/bin/ld: cannot find -lfwlib32
collect2: error: ld returned 1 exit status

fwlib32.h 是我要包含的库。共享对象文件 libfwlib32.so 存在于 /usr/local/lib/usr/lib 中。但我无法链接到它。我已经尝试了类似问题提供的所有解决方案,包括

$ export LIBRARY_PATH=/usr/local/lib/

$ export LD_LIBRARY_PATH=/usr/local/lib

我也对/usr/lib做了上面的操作,但还是报同样的错误。 我已尝试在命令行中使用 -L 选项,但仍然出现错误。

我什至创建了一个名为 lib 的新文件夹,将 libfwlib32.so.1.0.1 粘贴到其中并运行

$ ln -s ~/lib/libfwlib32.so.1.0.1 ~/lib/libfwlib32.so

在控制台上创建一个新的 .so 文件,并将 ~/lib 作为命令行上 -L 选项的参数。没什么区别。我正处于撕裂我的头发的地步,所以任何帮助将不胜感激。

非常感谢!

最佳答案

你应该把 -l 选项放在最后:

$ g++ minIni.c device_datum.cpp fanuc_axis.cpp fanuc_path.cpp service.cpp condition.cpp cutting_tool.cpp string_buffer.cpp logger.cpp client.cpp server.cpp adapter.cpp fanuc_adapter.cpp FanucAdapter.cpp -L/usr/local/lib/ -o adapter -lfwlib32 -lpthread 

注意:请确保所有头文件和源文件都在同一个文件夹中。

关于c++ -/usr/bin/ld 找不到 -l<nameOfLibrary>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34037474/

相关文章:

linux - 工作窃取和内核级线程

linux - sed如何在匹配模板时插入2次替换?

linux - glibc时间函数实现

c - 为什么 MacOS 上的 c 函数 `open` 比同一台机器上的 Ubuntu VM 慢 4 倍?

python - 在 Ubuntu 14.04 LTS 中将 Python 重置为系统 Python

c++ - 为什么 std::function 在 C++11 中不隐式转换为 bool?

c++ - getnameinfo 内存泄漏是否得到确认?

c# - union 结构 C# - 等效或等于?

c++ - 在同一端口上发送和接收 UDP

php - 如何从 php 注册 ejabberd 用户?