Есть больше функции в 2 -й файлах, упомянутых выше, без этой задачи.
Код: Выделить всё
Showing All Messages
Undefined symbol: MyClass::foo()
< /code>
Файл .cpp является доказанной частью компиляции, потому что есть участники, которые делают компиляцию и связывают, как и ожидалось. Но я не могу найти, где я могу управлять этой настройкой. Есть идеи, как и где?// MyClass.h
class MyClass {
public:
void sayHello() {
std::cout в заголовке < /strong>, компилятор видит полное определение, где бы MyClass.h включен.
Шаг линкера не требуется, чтобы разрешить его. />// MyClass.h
class MyClass {
public:
void sayHello();
};
< /code>
файл 2: myclass.cpp < /p>
// MyClass.cpp
#include "MyClass.h"
#include
void MyClass::sayHello() {
std::cout
[*] Убедитесь, что ваш файл реализации .cpp является частью вашей цели Xcode:
Перейти к Xcode → Select. [b] Целевое членство [/b], убедитесь, что ваша цель проверена. (Это не решение, но обходное обход). < /Li>
< /ol>
Наилучшая практика: < /p>
Используйте файлы заголовков (.h) только для объявлений. Связано с
final binary. < /li>
< /ol>
Обратите внимание на Xcode 16.4. Do: < /p>
Выберите исходный файл. В Project Navigator (левая боковая панель)
нажмите на файл .cpp (например, myclass.cpp), который содержит ваш
implemptionation.
Открыть инспектор файла. Перейдите в правую боковую панель. < /Li>
Если она не видно, нажмите «Опция + команда + 1» или нажмите кнопку «Br /> в правом верхнем правом»:
Это первая вкладка на правой боковой панели,
обычно значок документа (🗎). < /Li>
< /ul,
>
Подробнее здесь: [url]https://stackoverflow.com/questions/79673560/xcode-16-c-link-error-on-class-separation-of-header-h-and-implementation[/url]