C++ Eclipse ld:找不到 -l 的库
C++ Eclipse ld: library not found for -l
我有一个主项目和一个库项目。 当我尝试在 Eclipse 中构建时,我不断收到此错误:
make all
Building file: ../src/hello/Hello.cpp
Invoking: GCC C++ Compiler
g++ -I"/Users/pdl/Development/HelloWorld/Namer/src/namer"
-include"/Users/pdl/Development/HelloWorld/Namer/src/namer/World.h" -O0 -g3 -Wall -c
-fmessage-length=0 -MMD -MP -MF"src/hello/Hello.d" -MT"src/hello/Hello.d" -o "src/hello/Hello.o" "../src/hello/Hello.cpp"
Finished building: ../src/hello/Hello.cpp
Building target: Hello
Invoking: MacOS X C++ Linker
g++ -L"/Users/pdl/Development/HelloWorld/Namer" -o "Hello" ./src/hello/Hello.o
-l"/Users/pdl/Development/HelloWorld/Namer/src/namer/World.h"
ld: library not found for -l/Users/pdl/Development/HelloWorld/Namer/src/namer/World.h
collect2: ld returned 1 exit status
make: *** [Hello] Error 1
我不是在尝试调试。 我只是在努力建造。
提前谢谢你。
<小时 />这是我的代码:
你好是我的主要项目,Namer是我的图书馆。
在我的 Hello 项目中,我有一个这样的文件夹结构:src -> 你好
您好.cpp:
#include <stdio.h>
#include "World.h"
int main() {
printf("Hello %sn", getWorld().c_str());
return 0;
}
CMakeLists.txt:
cmake_minimum_required(VERSION 2.8.6)
project(Hello)
find_package(Namer REQUIRED)
include_directories("${Namer_INCLUDE-DIRS}")
add_executable(hello main.cpp)
target_link_libraries(hello ${Namer_LIBRARIES})
FindNamer.cmake
find_path(Namer_INCLUDE_DIRS World.h /usr/include "$ENV{NAMER_ROOT}")
find_library(Namer_LIBRARIES namer /usr/lib "$ENV{NAMER_ROOT}")
set(Namer_FOUND TRUE)
if (NOT Namer_INCLUDE_DIRS)
set(Namer_FOUND FALSE)
endif (NOT Namer_INCLUDE_DIRS)
if (NOT Namer_LIBRARIES)
set(Namer_FOUND FALSE)
endif (NOT Namer_LIBRARIES)
在我的 Namer 项目中,我有一个这样的文件夹结构:src -> 命名者
世界.cpp:
#include "World.h"
std::string getWorld() { return "Earth"; }
int main() {
printf("We are in Namer %sn", getWorld().c_str());
return 0;
}
世界:
#include <string>
std::string getWorld();
CMakeLists.txt:
cmake_minimum_required(VERSION 2.8.6)
project(Namer)
include_directories("${CMAKE_SOURCE_DIR}")
add_library(namer World.cpp World.h)
似乎
您正在构建"src/hello/Hello.o",但搜索错误。 -l"/Users/pdl/Development/HelloWorld/Namer/src/namer/World.h"
应该是链接器命令中的库而不是标头。检查您的项目设置。
相关文章:
- 代码库找不到标准C++库标头
- 打开的简历找不到图像
- 我的C++项目找不到.exe
- C++ python 中的函数来自使用 ctypes 的.dll - 找不到函数和访问冲突
- Arduino 串行库找不到"availableForWrite()"函数
- Linux上的clangd找不到默认标头
- 制作:没有实现目标的规则 - 找不到源文件
- Qt Creator - OpenCV - 未定义的引用/找不到库
- LLVM JIT编译的程序找不到外部函数
- 资源中的文件找不到本地文件
- Mac 上的 Eclipse:未加载库:找不到图像
- 错误:控制到达非无效功能的末尾.找不到修复错误的位置
- Linux 查找 glxext.h 函数的对象 -> 找不到正确的 .so -> "undefined reference"
- Mongodb客户端的SCons找不到libboost_system
- 包含的文件 <> 找不到 " " 中包含的文件
- 定义仅具有标头的类 - 找不到不存在的 cpp
- 如何链接C++以使用静态C库中定义的变量(找不到符号错误)
- Oracle 数据库中的 OCCI - 找不到过程 OCIPIsDesc.dll 库中重建的入口点
- 使用gsl的g++编译:找不到库
- 来自 EPEL 的 Amazon Linux 上的 Clang 找不到C++标头或库