Задавая этот вопрос заранее, потому что не так много можно найти об этом коде ошибки. Решить это довольно тривиально, но диагностирование стоило мне много времени, потому что не выдается правильное сообщение об ошибке.
Так что же случилось?
CL.exe
была проблема и должна быть закрытаerror MSB6006: "CL.exe" exited with code 1
Проблема была в синтаксических ошибках в моих шаблонных функциях. Кто бы мог догадаться об этом.
Однако это было трудно выяснить, потому что об этом не сообщалось. Смотрите мой ответ о том, как определить, какие функции неисправны.
Шаблонные функции были включены в заголовок .cpp, однако их полное определение в заголовке не имело никакого значения.
// foo.h
template <typename T>
void foo();
...
#include "foo.cpp"// foo.cpp
template <typename T>
void foo()
{
...
}
Сначала вам нужно скомпилировать все .cpp файлы, которые включают шаблонные функции отдельно (выберите один в проводнике проекта, щелкните правой кнопкой мыши и «скомпилируйте»).
Для меня первый намек на то, что некоторые из них скомпилированы, а для других cl.exe
разбился.
Следующим шагом было создание bogus.cpp
файл только с одной функцией, где я один за другим добавил вызовы к каждой созданной мной шаблонной функции. После добавления: перекомпилируйте. Это шло хорошо, пока я не добрался до неисправного, теперь bogus.cpp
также разбился cl.exe
, Джекпот.
Последней задачей было исправление синтаксической ошибки, которая раздражает без сообщений об ошибках, но как только это будет сделано, bogus.cpp
скомпилирует снова. Вернитесь к добавлению дополнительных вызовов функций, пока все не будет рассмотрено.
Надеюсь, я смогу помочь.
Других решений пока нет …