c++ - 问题包括库 C++

标签 c++ g++ static-libraries unix-ar

我有一个非常简单的 C++ 文件 Multiplier.cpp 和相应的头文件,我使用以下命令从中创建了一个库

$ g++ -o Multiplier.o -c Multiplier.cpp
$ ar cr libMultiplier.a Multiplier.o

在一个新目录中,我创建了一个使用 Multiplier 类的 Calculator.cpp(带有相应的头文件)。头文件 Calculator.h 有相应的`#include "Multiplier.h"

头文件Calculator.h有对应的#include "Multiplier.h"

我将创建的库复制到此目录我尝试使用以下命令编译 Calculator.cpp:

$ g++ -o Calculator Calculator.cpp -L. -lMultiplier

这给了我这些错误:

In file included from Calculator.cpp:1:
Calculator.h:1:24: error: Multiplier.h: No such file or directory
In file included from Calculator.cpp:1:
Calculator.h:6: error: ISO C++ forbids declaration of ‘Multiplier’ with no type
Calculator.h:6: error: expected ‘;’ before ‘&’ token
Calculator.h:8: error: expected `)' before ‘&’ token
Calculator.cpp:5: error: redefinition of ‘class something::Calculator’
Calculator.h:5: error: previous definition of ‘class something::Calculator’`

我已经搜索了很长时间,但无法弄清楚发生了什么。 我正在使用 GCC 4.2.1。

最佳答案

您的包含文件 Multiplier.h 位于另一个文件夹中。您希望编译器如何找到它?您需要告诉编译器文件的位置,使用 -I 命令行标志并提供包含文件的路径,或者使用 #include 中的路径指令。

关于c++ - 问题包括库 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11309645/

相关文章:

c++ - QGridlayout 改变行高

c++ - 如何链接 netbeans (linux) 中的库?

c++ - 奇怪的链接行为,最新的 g++

c - 将程序与两个静态库链接,每个静态库都包含依赖于另一个函数的函数?

c++ - 将 OpenSSL 静态库添加到 vc++ 项目

c++ - 使用 vcpkg 安装 GTK3 的主题和图标问题

c++ - 重新启动后禁用USB键盘

c++ - 未定义的 pthread 引用甚至使用 lpthread 创建

linux - 如何将两个 "ar"静态库合并为一个?

c++ - 在编译时获取 std::array 中的元素数量