Я уже довольно давно использую CMake для создания решений VS 2008 для сборки программы, ее установщика и упаковщика (а также нескольких тестовых программ). Для запуска программе необходимо несколько библиотек, которые установочный проект помещает в каталог bin, а также сгенерированный исполняемый файл. В VS 2008, если я хочу отладить созданную программу, я создаю проект INSTALL и затем нажимаю Отладка-> Начать отладку. В первый раз, когда я делаю это после генерации решения, передо мной открывается диалоговое окно, в котором я могу перейти к папке bin, а затем к нужному исполняемому файлу.
Однако в Visual Studio 2010 после нажатия «Отладка-> Начать отладку» я не получаю диалоговое окно, а получаю сообщение о том, что не удается найти программу ALL_BUILD (которая не существует и не должна существовать) , Я могу изменить стартовый проект на соответствующий исполняемый файл (или щелкнуть по нему правой кнопкой мыши и выбрать отладку), но тогда он загружает исполняемый файл с неверного пути и, следовательно, не может найти библиотеки DLL. Я знаю, что я мог бы либо добавить dll в мой системный путь, либо скопировать dll в тот же каталог, где изначально создавался исполняемый файл, но это далеко не идеальные решения (по причинам тестирования и переносимости), и эти шаги не были требуется в VS 2008.
Это один и тот же файл CMakeLists.txt для обоих случаев и один и тот же исходный код. Единственное отличие состоит в том, что CMake запускается с генератором «Visual Studio 9 2008» в первом случае и генератором «Visual Studio 10» во втором случае.
Я могу запустить сгенерированную программу из каталога bin с помощью Проводника Windows, но я не могу отладить ее (например, построчно пройти по проблемной области).