2014 dxdy logo

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

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




 
 Странная ошибка VC6++
Сообщение10.05.2010, 18:56 
Аватара пользователя
Может быть кто-то знает.
Предупреждаю, ситуация не самая стандартная
Так как собственно исходныве причины самой ошибки я знаю,
но не понимаю, как с этим боротся.
По порядку:
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 
1. Ваша тема называется "Странная ошибка VC6++", и в то же самое время вы упоминаете ключ /clr, который появляется только в VC7 для проектов типа VC++/CLR.

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

 
 
 
 Re: Странная ошибка VC6++
Сообщение11.05.2010, 11:04 
Аватара пользователя
Всё пробовал.
Главное, что ошибка всплывает в конце.
То есть её, судя по всему, выдаёт линковщик.
А не сомпилятор.
Может быть из-за таймера?
В новом проекте у меня много измерителей скорости.
...............
Пусть будет VC7

 
 
 
 Re: Странная ошибка VC6++
Сообщение11.05.2010, 17:15 
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 
Не могу ничего сказать хорошего. На мой взгляд, переносить большие проекты в другую версию VS автоматом - бесполезно. Мне это не удалось сделать при переходах с VS2 -> VS4, VS4->VS6, VS6->VS2005 (пишу на С++). Перенос не осуществлялся даже на уровне кодов, приходилось искать и исправлять непонятные ошибки. С переходом на следующий VS я делаю новую версию программ, предыдущие версии поддерживаю на их родном VS.
З.Ы. Пользуюсь только лицензионными программами. Ответы поддержки - поступайте согласно MSDN. Программы до 2-5 тысяч строк переводятся элементарно, больше 50 тысяч - лучше переносить в виде кода в новый проект, при этом будут (по крайней мере могут) возникать ошибки компиляции, логика программ у меня не нарушалась. Хочу предостеречь, если использовались недокументированные функции, то готовтесь ко всему.
З.З.Ы. rebild не помогает.

 
 
 [ Сообщений: 5 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group