Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Автоматическое удаление неиспользуемой части кода
|
|||
|---|---|---|---|
|
#18+
Проект на C++ в Visual Studio 2013 Есть два файла с кодом - FileSrc1.cpp и FileSrc2.cpp и один общий заголовочный файл - Core.hpp В FileSrc2.cpp есть функция checkRange, которая объявлена в Core.hpp и вызывается из кода в FileSrc1.cpp. Проект компилируется нормально, но при линковке пишется, что Код: plaintext 1. Смотрю в файле FileSrc2.obj - там этой функции нет. Помню где-то в опциях проекта видел настройку, чтобы удалять код, на который нет ссылок. Похоже она установлена и поэтому компилятор посчитал, что на функцию checkRange нет ссылок, и вырезал её. Какая настройка проекта влияет на такое поведение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2015, 17:48 |
|
||
|
Автоматическое удаление неиспользуемой части кода
|
|||
|---|---|---|---|
|
#18+
Degun, функция не static? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2015, 17:51 |
|
||
|
Автоматическое удаление неиспользуемой части кода
|
|||
|---|---|---|---|
|
#18+
RWolf, Нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2015, 17:52 |
|
||
|
Автоматическое удаление неиспользуемой части кода
|
|||
|---|---|---|---|
|
#18+
Degun, значит, объявление функции не соответствует её определению в заголовке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2015, 17:55 |
|
||
|
Автоматическое удаление неиспользуемой части кода
|
|||
|---|---|---|---|
|
#18+
RWolf, Хорошо, а почему её нет в файле FileSrc2.obj ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2015, 17:56 |
|
||
|
Автоматическое удаление неиспользуемой части кода
|
|||
|---|---|---|---|
|
#18+
DegunПроект на C++ в Visual Studio 2013 Есть два файла с кодом - FileSrc1.cpp и FileSrc2.cpp и один общий заголовочный файл - Core.hpp В FileSrc2.cpp есть функция checkRange, которая объявлена в Core.hpp и вызывается из кода в FileSrc1.cpp. Проект компилируется нормально, но при линковке пишется, что Код: plaintext 1. Смотрю в файле FileSrc2.obj - там этой функции нет. Помню где-то в опциях проекта видел настройку, чтобы удалять код, на который нет ссылок. Похоже она установлена и поэтому компилятор посчитал, что на функцию checkRange нет ссылок, и вырезал её. Какая настройка проекта влияет на такое поведение? Твои предположения ошибочны. Наличие ошибки LNK2019 уже говорит о том, что где-то на эту функцию есть ссылка. Какие настройки влияют на "это" -- в первую очередь, уровень оптимизации кода. В debug-режиме никакого "выреза" не будет. Дебаг режим -- с отключённой оптимизацией, ключ уже не помню наизусть. Твоя же проблема, думаю, связана с соглашениями о вызовах, тут в функции требуется __cdecl, а у тебя возможно она объявлена как __stdcall. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2015, 10:20 |
|
||
|
Автоматическое удаление неиспользуемой части кода
|
|||
|---|---|---|---|
|
#18+
Разобрался в чём было дело. Предыдущее описание ситуации - это сильно упрощённое описание реального проекта, в котором в разных папках находились два файла с одинаковыми именами mathfuncs.cpp. Разные части проекта ссылались на функции, находящиеся в обоих этих файлах. Когда я добавлял в проект только первый файл mathfuncs.cpp, в котором находилась функция checkRange, то проект не собирался, т. к. проекту ещё требовались функции, которые находились во втором файле mathfuncs.cpp, находящемся в другой папке. Когда я добавлял в проект второй файл mathfuncs.cpp, то при компиляции в папке Release компилятор сначала компилировал первый файл mathfuncs.cpp, создав mathfuncs.obj, а затем компилировал второй файл mathfuncs.cpp, молча затирая mathfuncs.obj от первого файла mathfuncs.cpp, где находилась функция checkRange. Проект естественно не собирался, т. к. функционал от первого файла mathfuncs.cpp был потерян. Вышел из положения переименовав второй файл mathfuncs.cpp. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2015, 10:36 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39089614&tid=2018782]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
157ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 252ms |

| 0 / 0 |
