У меня есть проект C++ в MSVS 2010 Express. Я планировал написать несколько модульных тестов для проверки этого проекта. Сейчас они идут по следующим направлениям:Как запустить cl.exe из cmd, используя те же настройки, что и в MSVS?
#include "header.h" //Header is the header for the source I want to test
void testSomeFunction()
{
//Call function (from external src, prototype in header.h)
//Save output to file
}
int main()
{
testSomeFunction();
return 0;
}
Я создаю эти исходные файлы вне моего проекта, потому что я хочу, чтобы иметь возможность запускать каждый из них в качестве отдельного исполняемого файла, но у меня возникли проблемы с получением линкера Microsoft в свяжите их.
Это моя проблема до сих пор (выход CMD):
cl ut_Converter.cpp Converter.obj
ut_Converter.cpp
c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xlocale(323) : warning C4530: C++ exception handler used, but unwind semantics are not enabled. Specify /EHsc
Microsoft (R) Incremental Linker Version 10.00.40219.01
Copyright (C) Microsoft Corporation. All rights reserved.
/out:ut_Converter.exe
ut_Converter.obj
Converter.obj
Converter.obj : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in ut_Converter.obj
Converter.obj : fatal error LNK1313: pure module detected; cannot link with ijw/native modules
Я никогда не использовать продукты Microsoft, я знаком с использованием GNU инструменты GCC и сделать, но я должен использовать инструменты Microsoft для это и я понятия не имею, как они работают.
Возможно, я собираюсь строить эти тесты глупым способом, но это лучший способ, о котором я могу думать прямо сейчас.
Это то, что я хочу сделать:
- компиляции исходных файлов в моем проекте в объектные файлы
- Компиляция мои тестовые файлы в объектные файлы
- Ссылка на файл тестового объекта с соответствующим проектом объектные файлы для создания тестового исполняемого файла
Как мне это сделать? (Я предполагаю, что есть некоторые настройки, которые мне нужно настроить, чтобы все было совместимо, но я понятия не имею, что это такое или как я буду их устанавливать)
Дополнительно: Я знаю, что он упоминает уровень отладки, но я «Будьте готовы поставить пари, что будут другие несовместимые настройки. Есть ли способ узнать, какие настройки находятся в программе, чтобы я мог передать их в cl.exe при запуске?
Редактировать: Когда я говорю о командной строке, я имею в виду тот, который поставляется с Visual Studio со всеми настройками переменных среды.
Создайте соответствующий проект, содержащий ваши тестовые файлы, и используйте MSBuild из «Командная строка разработчика» для создания проекта в командной строке. Если вы действительно хотите называть инструменты вручную, хорошей отправной точкой было бы свертывание многострочной системы сборки (Tools-> Options-> Build and Run) и просмотр сгенерированных команд для фиктивного проекта. – Cameron
Ах, я смог сделать то, что хочу, создав новый проект. Речь шла только о том, чтобы включить внешние файлы в проект - мое отсутствие знакомства с VS меня отключило. – Francis