自动工具未定义的引用错误
autotools undefined reference error
我的项目结构如下:
ProjName/
| configure.ac
| Makefile.am
| src/
| Main.cpp
| Main.h
| Extra.cpp
| Extra.h
Main 和 Extra 都是同一命名空间中的类 MyNamespace
。即使Main.h
包含Extra.h
我收到链接器错误:
in function MyNamespace::Main::Main():
undefined reference to MyNamespace::Extra::Extra()
我已经确保所有类都被包裹在
namespace MyNamespace { ... }
以及向Main.cpp
添加using namespace MyNamespace
,并且两个类的构造函数都是正确的。
似乎唯一可以解决此问题的是向Main.cpp
添加#include "Extra.cpp"
,但这只会破坏使用头文件的目的,并且当我向项目添加更多文件时会变得非常乏味。
编辑:
Makefile.am
看起来像:
bin_PROGRAMS= ProjName
ProjName_CPPFLAGS= -I$(top_srcdir) -I$(top_srcdir)/src
ProjName_SOURCES= src/Main.cpp Main.h
我的项目使用Ogre3D库,所以也有一些Ogre特定的东西。我尝试将 cpp 和头文件添加到 ProjName_SOURCES
并运行./bootstrap && ./configure && make
但随后出现错误,如下所示:
No rule to make .deps/src/ProjName-Extra.Po
或者类似的东西(我现在正在打电话)。
您没有正确指定源文件。 尝试:
ProjName_SOURCES = src/Main.cpp src/Extra.cpp
这意味着 Extra.cpp 不会编译并链接到可执行文件。检查您的生成文件。
相关文章:
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- C++引用错误
- 已定义函数时出现 G++ "未定义的引用"错误
- 链接 cmake 时出现未定义的引用错误
- 只有级联分类器会发出未定义的引用错误
- 2个模板化类的非模板友元函数未定义引用错误
- C/C++ 取消引用错误:在空检查之前取消引用
- 为什么我的C++代码无法编译,出现未定义的引用错误
- 我的代码中C++未定义的引用错误?
- 模板专用化会导致未定义的引用错误
- .cpp文件中未定义的引用错误
- c++ 中目录中文件的未定义引用错误
- Opencv4 使用 pkg-config 给出未定义的引用错误
- 使用Cygwin C++时出现未定义的引用错误,为什么我的文件没有链接?
- 共享指针取消引用错误
- 编译简单的多文件类程序时出现未定义的引用错误
- 模板函数产生未定义的引用错误
- 调用提取重加载器会产生对"运算符"的未定义引用错误>>
- 如何修复"未定义的引用"错误 opencv 和 g++
- 未定义的引用错误,我该怎么办?