我有这样的设置
文件.h:
#pragma once
namespace a {
int home(double a, double b, ...
class b {
int la();
};
}
文件.cpp
#include "file.h"
using namespace a;
int home(double a, double b, ...) {
//function stuff
}
int b::la() {
home(1, 2, ...)
}
并且b被实例化并在 main 中使用,如下所示:
#include "file.h"
b instant;
instant.la()
但是我在使用该函数的任何地方都收到此链接器错误home
:
undefined reference to `a::home(double, double, ...)'
In function a::b::la()
我很确定所有 CMakelist 都已正确设置,并且所有内容都包含在内。
但是当我将file.cpp更改为在命名空间中时:
namespace a {
all of the same stuff
}
它工作得很好吗?
任何想法为什么会发生这种情况?