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

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

在新目录中,我创建了一个Calculator.cpp(带有相应的头文件),该文件使用Multiplier类。头文件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/

10-09 09:15