qt -lnk2019当在类的成员函数中使用名称空间的函数时
Qt - LNK2019 when using function of a namespace in member function of a class
我有一个名称空间,其中 Projecttestcompare_structs.h
中的功能声明:
#ifndef COMPARE_STRUCTS_H
#define COMPARE_STRUCTS_H
#include <QtTest/QtTest>
#include "include/Utils/containers.h"
namespace compare_structs {
void compareRawData(RAW_DATA actual, RAW_DATA expected);
...
}
#endif // COMPARE_STRUCTS_H
我定义了Projecttestcompare_structs.cpp
中的功能:
#include "compare_structs.h"
void compare_structs::compareRawData(RAW_DATA actual, RAW_DATA expected)
{
...
}
我还将.h
和.cpp
文件添加到QTS .pro
文件:
test {
HEADERS += ...
test/sql_db_test.h
test/compare_structs.h
SOURCES += ...
test/sql_db_test.cpp
test/compare_structs.cpp
}
现在我 #include
compare_structs.h
到类.h
,然后在.cpp
文件中调用它:
Projecttestsql_db_test.h
:
#ifndef SQL_DB_TEST_H
#define SQL_DB_TEST_H
...
#include "test/compare_structs.h"
class Sql_DB_Test : public QObject
{
...
private slots:
...
void add_get_raw_data_test();
...
};
#endif // SQL_DB_TEST_H
Projectmaintestsql_db_test.cpp
:
#include "sql_db_test.h"
void Sql_DB_Test::add_get_raw_data_test()
{
...
compare_structs::compareRawData(rawBack, raw); //LNK2019
}
错误消息:
sql_db_test.obj:-1: Fehler: LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""void __cdecl compare_structs::compareRawData(struct RAW_DATA,struct RAW_DATA)" (?compareRawData@compare_structs@@YAXURAW_DATA@@0@Z)" in Funktion ""private: void __thiscall Sql_DB_Test::add_get_raw_data_test(void)" (?add_get_raw_data_test@Sql_DB_Test@@AAEXXZ)".
免费翻译: unresolved externel symbol ""void __cdecl compare_structs::compareRawData(struct RAW_DATA,struct RAW_DATA)" (?compareRawData@compare_structs@@YAXURAW_DATA@@0@Z)" in function ""private: void __thiscall Sql_DB_Test::add_get_raw_data_test(void)" (?add_get_raw_data_test@Sql_DB_Test@@AAEXXZ)".
是什么导致链接器错误?
这听起来就像每次我在QT项目中添加新文件时都会发生什么。QT创建者对重建自己的makefile的需要感到困惑。
如果完整的"清洁",然后是QT Creator菜单中的"重建所有",则只需转到项目所在的Parent文件夹,然后删除与您的项目相对应的build-...
文件夹。
然后再次"清洁全部"answers"重建"。
- 当在同一名称空间中有两个具有相同签名的函数时,会发生什么
- 在命名空间中定义函数还是限定函数
- CUDA内核和数学函数的显式命名空间
- 在命名空间中使用全局命名空间中的函数
- 是否可以将函数导入命名空间,但不能导出它?
- 当 A 在 for 循环中调用函数 B 时,如何计算函数 A 的空间复杂度?
- 是否有 Windows 用户空间函数来枚举连接的网络共享?
- C++矢量复制构造函数和赋值运算符是否也复制保留空间?
- 使用另一个命名空间中的函数C++
- Visual Studio 无法解决类和命名空间中重载的明确函数
- 命名空间更改函数定义
- C++命名空间中调用 void 函数的错误
- C++ 17 个友元函数声明和内联命名空间
- MFC 函数来自 :: 命名空间?
- 在命名空间内使用函数的循环包含
- 在命名空间中使用指令和函数重载
- 命名空间中未引用的函数
- 使用类指针重载C++命名空间函数模板专用化替代方法?
- 朋友定义函数的名称空间是什么
- cgo调用C++中定义的函数(位于命名空间中)