无法将静态二进制文件链接到 #include
Can't link a static binary to #include it
你好,
我有一个正在尝试编译的文件,其中包含一个静态链接二进制文件的#include。
#!/bin/bash
g++ -Wall -std=c++17 Message.cpp ../textmagic-rest-cpp/lib/libtextmagic.a
我得到以下错误:致命错误:libtextmagic.h:没有这样的文件或目录
假设当前工作目录是调用/运行脚本的目录,那么我提供的相对路径是正确的。我可能错误地链接了二进制文件,我在互联网上搜索过,但其他帖子/资源对我没有帮助。
请注意,该脚本与Message.cpp
在同一目录中运行。
g++
具有-I
和-L
标志,可以为您执行此操作。您的标志将如下所示:-I/ThePathToYourHeaders
和-L/ThePathToYourLib
。我不知道g++
是否支持相对路径,但绝对路径保证在那里工作。
此外,您可能需要添加一个链接器标志。对于您的项目,它将是-ltextmagic
。它只是要链接的.a
文件的名称,文件名前面没有lib
。
#include
指令需要"读取"作为参数提供的头文件,而该头文件不包含在静态库中。
可以包括使用源文件的相对路径,也可以使用-I
参数将头文件的位置传递给编译器。
相关文章:
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- CMake-按正确顺序将项目与C运行时对象文件链接
- 从链接列表c++中删除一个项目
- 有根的二进制搜索树.保留与其父级的链接
- 读取文件的最后一行并输入到链接列表时出错
- 静态数据成员的问题-修复链接错误会导致编译器错误
- node-gyp 在 macOS 上未正确链接库
- 基于boost的程序的静态链接——zlib问题
- 无法链接 CMake 中的本地库
- 内联函数中具有内部链接的全局变量
- 链接阶段在Ubuntu上失败,但在MacOS上失败
- 使用gcc从静态链接的文件中查找可选符号
- 我可以创建一个链接另一个库但不依赖于其include的c++库吗
- include语句的顺序在链接步骤中如何重要
- 我是否应该对C++包含目录进行符号链接,以便它也出现在 /usr/include 下
- 将我的类移动到目录后出现链接错误"vc/include/"
- 将include/library目录和链接器参数传播到解决方案中的所有项目
- 我如何使用find_package在CMakeList.txt中链接Boost(不在usr/include中)
- 链接器不能识别某些#include
- 如何将一个文件夹与另一个目录中的一些.cpp和.h文件链接为Unreal Engine Project的Include路