2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Странная ошибка VC6++
Сообщение10.05.2010, 18:56 
Аватара пользователя


05/06/08
476
Может быть кто-то знает.
Предупреждаю, ситуация не самая стандартная
Так как собственно исходныве причины самой ошибки я знаю,
но не понимаю, как с этим боротся.
По порядку:
1. Нужна демо версия *.exe со статическими библиотеками,
следовательно проект устанавливает ключ /MT вместо /MD в командной строке
2. Если в проекте был ключ /clr (Common Language Runtime support), то его надо убрать.
Если этого не сделать, то появляется сообщение об ошибке ещё до компиляции!!!!:
Command line error D8016 : '/MT' and '/clr' command-line options are incompatible
Если же я всёже это делаю, то в командной строке компилятора всё нормально,
но!!!, в самом конце, после линковки, выползает эта же самая ошибка.
Command line error D8016 : '/MT' and '/clr' command-line options are incompatible
Хотя на 100% известно, что командная строка проекта ключ '/clr' уже не содержит:(
Ужаснее всего, что у меня есть уже проекты, которые линкуются вполне нормально.
Возможно ли?????
Что некоторые файлы *.cpp или *.h содержат какие-то ссылки или отсылки на библиотеки, которые как-то влияют на ситуацию?
Именно в этот проект я включил классы взятые из интернета.
Просто надо сравнивать свой и чужой алгоритмы.
Может в этих сторонних файлах дело?
Но при динамической линковке ничего не происходит.
И собственно никаких obj файлов из стороннего проекта я не исползую.

 Профиль  
                  
 
 Re: Странная ошибка VC6++
Сообщение10.05.2010, 19:52 
Заслуженный участник


15/05/05
3445
USA
1. Ваша тема называется "Странная ошибка VC6++", и в то же самое время вы упоминаете ключ /clr, который появляется только в VC7 для проектов типа VC++/CLR.

2. После изменения параметров проекта пробовали ли Вы запускать "Rebuild" вместо "Build"?

 Профиль  
                  
 
 Re: Странная ошибка VC6++
Сообщение11.05.2010, 11:04 
Аватара пользователя


05/06/08
476
Всё пробовал.
Главное, что ошибка всплывает в конце.
То есть её, судя по всему, выдаёт линковщик.
А не сомпилятор.
Может быть из-за таймера?
В новом проекте у меня много измерителей скорости.
...............
Пусть будет VC7

 Профиль  
                  
 
 Re: Странная ошибка VC6++
Сообщение11.05.2010, 17:15 
Заслуженный участник


15/05/05
3445
USA
MGM в сообщении #317905 писал(а):
Пусть будет VC7
Ну спасибо... Но я спрашивал о версии среды не из занудства.

Упоминание VC6++ вместе с /clr наводит на мысль, что Вы открыли VS6-проект в VS.NET. При этом в VS.NET работает wizard, который конвертирует проект в новый формат. А при конвертации больших проектов возможны неприятные неожиданности.

Если VS-проект изменен, но результат Rebuild не изменился, то можно попробовать удалить все файлы проекта, кроме исходников, внешних библиотек и собственно проекта.

Если проект получен конвертацией старой версии, то следующий вариант - создать проект заново в новой среде VS. Обычно это помогает.

В MSDN (/clr Common Language Runtime Compilation) есть примеры С++-кода, который относится к CLR и предполагает, что /clr задан. Например, атрибут System.CLSCompliantAttribute, ключевое слово __gc.

То, что Вы видите error D8016 не при компиляции, а при линковке, может означать, что несовместимость ключей возникает при обработке внешней библиотеки.

 Профиль  
                  
 
 Re: Странная ошибка VC6++
Сообщение28.05.2010, 01:16 


25/03/10
4
Не могу ничего сказать хорошего. На мой взгляд, переносить большие проекты в другую версию VS автоматом - бесполезно. Мне это не удалось сделать при переходах с VS2 -> VS4, VS4->VS6, VS6->VS2005 (пишу на С++). Перенос не осуществлялся даже на уровне кодов, приходилось искать и исправлять непонятные ошибки. С переходом на следующий VS я делаю новую версию программ, предыдущие версии поддерживаю на их родном VS.
З.Ы. Пользуюсь только лицензионными программами. Ответы поддержки - поступайте согласно MSDN. Программы до 2-5 тысяч строк переводятся элементарно, больше 50 тысяч - лучше переносить в виде кода в новый проект, при этом будут (по крайней мере могут) возникать ошибки компиляции, логика программ у меня не нарушалась. Хочу предостеречь, если использовались недокументированные функции, то готовтесь ко всему.
З.З.Ы. rebild не помогает.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group