Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
include context.h
|
|||
|---|---|---|---|
|
#18+
Объясните пожалуйста Создаю некий context.h Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. собираем получаем: Undefined symbols for architecture x86_64:context::run referenced from: В то же время если внести void context::run() { } в cpp-шку - то все хорошо. Ведь вначале h-ника стоит #ifndef вроде #include должен имплементацию подключить ровно 1 раз Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2018, 22:29 |
|
||
|
include context.h
|
|||
|---|---|---|---|
|
#18+
semen.s.semen, Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Вот так надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2018, 23:56 |
|
||
|
include context.h
|
|||
|---|---|---|---|
|
#18+
semen.s.semen, Точнее вот так #ifndef CONTEXT #define CONTEXT class context { public: void run(){;} } ; // забыл точку с запятой. #endif CONTEXT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2018, 23:59 |
|
||
|
include context.h
|
|||
|---|---|---|---|
|
#18+
Это Код: plaintext 1. 2. 3. 4. 5. 6. можно заменить на Код: plaintext 1. По теме Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 08:02 |
|
||
|
include context.h
|
|||
|---|---|---|---|
|
#18+
Спасибо за объяснение Поясните плиз - почему мой вариант не работает Хочу понять как работает сборщик ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 11:53 |
|
||
|
include context.h
|
|||
|---|---|---|---|
|
#18+
semen.s.semen собираем получаем: Undefined symbols for architecture x86_64:context::run referenced from: Ты гонишь, другая ошибка должна быть. Проблема в том, что ты определяешь одну и ту же функцию много раз, но не объявляешь её inline ни явно, ни неявно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 12:26 |
|
||
|
include context.h
|
|||
|---|---|---|---|
|
#18+
MasterZiv, Ты опять торопишься. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 12:27 |
|
||
|
include context.h
|
|||
|---|---|---|---|
|
#18+
semen.s.semenХочу понять как работает сборщик Вряд ли ты поймёшь по этому примеру, тут скорее С++-заморочки, чем работа сборщика. Грубо говоря, определение функции в нескольких объектниках/библиотеках запрещено по классике. А вот в С++ есть послабление -- разрешены функции inline. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 12:28 |
|
||
|
include context.h
|
|||
|---|---|---|---|
|
#18+
AmKadMasterZiv, Ты опять торопишься. В смысле? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 12:29 |
|
||
|
include context.h
|
|||
|---|---|---|---|
|
#18+
MasterZiv, мне кажется. что у ТС точка с запятой пропущена 21419037 Но я редко на С пишу, т.ч. как компилятор воспринял код Т.С. - не знаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 12:30 |
|
||
|
include context.h
|
|||
|---|---|---|---|
|
#18+
Брррр У меня объявление в 1 месте Имплементация тоже в 1 месте Просто оба они в 1 файле Все работает если я имплементацию перекладываю в cpp - файл ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 12:30 |
|
||
|
include context.h
|
|||
|---|---|---|---|
|
#18+
semen.s.semenБрррр У меня объявление в 1 месте Имплементация тоже в 1 месте Просто оба они в 1 файле Все работает если я имплементацию перекладываю в cpp - файл Нет, ты неправ. Подумай почему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 12:31 |
|
||
|
include context.h
|
|||
|---|---|---|---|
|
#18+
MasterZivТы гонишь, другая ошибка должна быть. Я вчера кодил и получил такую ошибку Имя класса только другое было Сюда выложил измененное имя класса и метода Принцип остался тот же ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 12:31 |
|
||
|
include context.h
|
|||
|---|---|---|---|
|
#18+
semen.s.semen, Давай начнём с уточнения сообщения об ошибке. авторUndefined symbols for architecture x86_64:context::run referenced from: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 12:32 |
|
||
|
include context.h
|
|||
|---|---|---|---|
|
#18+
MasterZivНет, ты неправ. Подумай почему. неправ в чем ? Где 2-я декларация ? Где 2-я имплементация ? Файл тоже 1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 12:32 |
|
||
|
include context.h
|
|||
|---|---|---|---|
|
#18+
MasterZivsemen.s.semen, Давай начнём с уточнения сообщения об ошибке. авторUndefined symbols for architecture x86_64:context::run referenced from: В оригинальной ошибке было Undefined symbols for architecture x86_64 Дальше кракозябры внутри которых читались имена классов и методов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 12:33 |
|
||
|
include context.h
|
|||
|---|---|---|---|
|
#18+
MasterZivAmKadMasterZiv, Ты опять торопишься. В смысле?Про пропущенную точку с запятой уже сказали. Поэтому с ней нижеприведенный вариант компилится. А то, что ты сказал про многократное определение ф-ии - просто поторопился. context.h Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. main.cpp Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 12:35 |
|
||
|
include context.h
|
|||
|---|---|---|---|
|
#18+
semen.s.semen, Проблема у тебя должна быть в том, что ты включаешь context.h в НЕСКОЛЬКО исходных файлов. Тогда ошибка должна быть что-то типа Код: plaintext А не как у тебя где этот символ не определён вообще ни одного раза. Другой вариант может быть, если ты бы не включил этот context.h ни в один исходный файл. Тогда была бы такая ошибка, как ты привёл, но тогда и класс не был бы объявлен, использовать ты его не мог бы. В любом случае, если проблему не решил, выкладывай код на https://hastebin.com/ или аналоги. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 12:40 |
|
||
|
include context.h
|
|||
|---|---|---|---|
|
#18+
MasterZivПроблема у тебя должна быть в том, что ты включаешь context.h в НЕСКОЛЬКО исходных файлов. Так ведь #ifndef CONTEXT #define CONTEXT используется Реально будет 1 инклуд ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 12:41 |
|
||
|
include context.h
|
|||
|---|---|---|---|
|
#18+
AmKadПро пропущенную точку с запятой уже сказали. Поэтому с ней нижеприведенный вариант компилится. А то, что ты сказал про многократное определение ф-ии - просто поторопился. Очевидно, что точка с запятой у него уже там была, иначе бы он не дошёл до фазы сборки, компиляция бы дала ошибку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 12:42 |
|
||
|
include context.h
|
|||
|---|---|---|---|
|
#18+
MasterZivА не как у тебя где этот символ не определён вообще ни одного раза. Все у меня определено И все работает даже если context.h включен во многие исходники а имплементация лежит в отдельной cpp-шке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 12:43 |
|
||
|
include context.h
|
|||
|---|---|---|---|
|
#18+
semen.s.semenMasterZivПроблема у тебя должна быть в том, что ты включаешь context.h в НЕСКОЛЬКО исходных файлов. Так ведь #ifndef CONTEXT #define CONTEXT используется Реально будет 1 инклуд Будет 1 инклуд, если ты включишь этот заголовок несколько раз в одном и том же исходном модуле . Я говорю о включении его в РАЗНЫХ модулях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 12:43 |
|
||
|
include context.h
|
|||
|---|---|---|---|
|
#18+
MasterZivsemen.s.semenпропущено... Так ведь #ifndef CONTEXT #define CONTEXT используется Реально будет 1 инклуд Будет 1 инклуд, если ты включишь этот заголовок несколько раз в одном и том же исходном модуле . Я говорю о включении его в РАЗНЫХ модулях. Все работает даже если context.h включен во многие исходники а имплементация лежит в отдельной cpp-шке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 12:44 |
|
||
|
include context.h
|
|||
|---|---|---|---|
|
#18+
semen.s.semenMasterZivА не как у тебя где этот символ не определён вообще ни одного раза. Все у меня определено И все работает даже если context.h включен во многие исходники а имплементация лежит в отдельной cpp-шке Тогда давай код. Домыслы твои выслушивать не интересно. Ты говоришь одно, а на самом деле у тебя другое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 12:44 |
|
||
|
include context.h
|
|||
|---|---|---|---|
|
#18+
MasterZiv.... Очевидно, что точка с запятой у него уже там была, иначе бы он не дошёл до фазы сборки, компиляция бы дала ошибку. кому очевидно, а кому и нет ну и ни про среду, ни про параметры сборки ничего не сказано может автор по отдельности компилятор и линковшик из командной строки или FAR запускает ))) Т.ч. наличие ошибки на фазе компиляции, не значит, что он не смог бы дойти до фазы сборки ))) и собирать банально какие нибудь старые файлы ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 12:45 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39646652&tid=2017860]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
55ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 168ms |

| 0 / 0 |
