NRF Connect SDK (Zephyr RTOS) Новая/Удалить в объявлении и реализации разделенного классаC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 NRF Connect SDK (Zephyr RTOS) Новая/Удалить в объявлении и реализации разделенного класса

Сообщение Anonymous »

Я получаю ошибку неопределенной ссылки на Новый (Unsigned int) '`При использовании объявления и реализации разделенного класса.cmake_minimum_required(VERSION 3.20.0)
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})

project(V2)

target_sources(app PRIVATE src/main.cpp src/test.cpp)
< /code>
meain.cpp: < /p>
#include
#include "test.h"

int main(void)
{
Test *pTest = new Test();
while(true) {
pTest->Run();
k_msleep(1000);
}
return 0;
}
< /code>
my test.h: < /p>
#ifndef _TEST_H_
#define _TEST_H_

#include
#include
#include
#include
#include

class Test {
public:
Test() {};
~Test() {};
void Run();
};
#endif
< /code>
my test.cpp: < /p>
#include "test.h"

void Test::Run() {
printk("test");
}
< /code>
Проблема /Вопрос: < /strong>
Теперь дело в том, что когда я комментирую функцию выполнения в test.cpp и пишу мой файл test.h, как это: < /p>

class Test {
public:
Test() {};
~Test() {};
void Run() {};
};
< /code>
Тогда проблемы нет, и я могу создать идеально. Что не так с моей реализацией? Почему?
не динамическая версия main.cpp: < /p>
#include
#include "test.h"

int main(void)
{
Test test = Test();
while(true) {
test.Run();
k_msleep(1000);
}
return 0;
}
< /code>
my prj.conf: < /p>
CONFIG_PWM=y
CONFIG_GPIO=y
CONFIG_I2C=y
CONFIG_LOG=y
CONFIG_LOG_DEFAULT_LEVEL=4
CONFIG_LOG_MODE_DEFERRED=n
CONFIG_I2C_LOG_LEVEL_DBG=y
CONFIG_INIT_STACKS=y
CONFIG_ASSERT=y

# root cause of i2c explained here: https://devzone.nordicsemi.com/f/nordic ... -nrf5340dk
# solution is to disable secure uart or something
CONFIG_TFM_SECURE_UART=n
CONFIG_TFM_LOG_LEVEL_SILENCE=y


Подробнее здесь: https://stackoverflow.com/questions/796 ... -and-imple
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»