你好,
我有一个正在尝试编译的文件,其中包含一个静态链接二进制文件的#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
参数将头文件的位置传递给编译器。