Неопределенная ссылка на * на этапе ссылки при использовании xmake [дубликат] ⇐ C++
-
Гость
Неопределенная ссылка на * на этапе ссылки при использовании xmake [дубликат]
У меня есть файл a.h
#include "b.h" класс А { публика: статическая B* func(B* b); }; и файл b.h
#include "a.h" класс А; класс Б { Б() : a(A::func(это)) {} А*а; }; Поскольку они ссылаются друг на друга, я просто использую объявление вперед. И компилируется хорошо.
Но на этапе компоновки оказывается ошибка «undefine A::func».
Я думаю, возможно, что-то не так с последовательностью связывания. Файл a должен быть связан перед файлом b. Кстати, я использую xmake. Я не нашел ничего, что приводило бы к принудительной ссылке перед b.
У меня есть файл a.h
#include "b.h" класс А { публика: статическая B* func(B* b); }; и файл b.h
#include "a.h" класс А; класс Б { Б() : a(A::func(это)) {} А*а; }; Поскольку они ссылаются друг на друга, я просто использую объявление вперед. И компилируется хорошо.
Но на этапе компоновки оказывается ошибка «undefine A::func».
Я думаю, возможно, что-то не так с последовательностью связывания. Файл a должен быть связан перед файлом b. Кстати, я использую xmake. Я не нашел ничего, что приводило бы к принудительной ссылке перед b.
Мобильная версия