Несколько основных файлов CPP в VisualStudio?

у меня есть образец каталога программного обеспечения, который содержит несколько файлов с несколькими main функции. Могу ли я собрать все эти файлы в один проект, скомпилировать их, а затем запустить определенные, не получая main already defined ошибка? Предположим, я не хочу создавать отдельный проект для каждого cpp файла.

обновление

мне нужно простое решение с одним-двумя щелчками мыши (если оно существует). Я не хочу распространять файлы между папками или содержимое файлов рефакторинга. Например, в Eclipse / Java вы можете щелкнуть правой кнопкой мыши любой файл с main и запустить его. И в одном проекте может быть много основных файлов. Возможно ли это для VisualStudio/CPP?

обновление 2

Я знаю, что C++ не является Java и что Visual Studio не является Eclipse. Мой вопрос касается автоматизации некоторых ручных операций.

6 ответов


Я не работал OpenCV, но он использует cmake и имеет CMakeLists.txt в образце каталога. Существует некоторая дискуссия о создании образцов с использованием cmake здесь.

Cmake ничего не создает сам, он генерирует сценарии сборки для целевой платформы и должен иметь возможность создавать файлы решений и проектов, которые можно загрузить в Visual Studio.


положить эти main функции в отдельных пространствах имен, а затем определить, какой из них вы хотите запустить, например.

File1.cpp

namespace F1
{
    int main(int argc, char * argv[])
    {
        // ...
    }
}

The-real-main.cpp

int main(int argc, char * argv[])
{
    if (whatever)
        return F1::main(argc, argv);
}

редактировать: в ответ на дополнительную информацию.

C++ - это не Java, а VS-не Eclipse :) естественный способ поддерживать сразу несколько программ в VS-это поместить несколько проектов (по одному для каждого исполняемого файла или библиотеки) в одно решение. Если вы хотите запустить проект, просто щелкните его правой кнопкой мыши в Solution Explorer выберите Set as Startup Project и выберите Start кнопка для запуска.

чтобы добавить проект в решение, щелкните решение правой кнопкой мыши и выберите Add | New project... или Add | Existing project.


в Visual studio:

создать одно "решение" - под решением можно создать несколько"проектов". Каждый проект будет компилироваться отдельно в исполняемый файл. Компиляция выполняется как обычно, кроме "выгрузки" ненужных проектов. Чтобы снова открыть один из других проектов, просто выберите "перезагрузить проект" из Обозревателя решений.

эта функция полезна для целей исследования / организации, где группируются исходные файлы в общей "папке" для легкий поиск и доступ еще во время компиляции/отладки отдельно. Главное преимущество того, что я могу сказать, заключается в том, что можно легко перемещаться по проектам с помощью обозревателя решений.


может быть самым простым решением является использование нескольких конфигураций построения. Просто создайте несколько конфигураций сборки, определите точку входа для каждой из них.


в Visual Studio необходимо создать один проект на исполняемый файл, который требуется создать.


Если необходимо создать только один файл, вы можете использовать опцию "исключить файлы из сборки" в свойствах, чтобы исключить остальные. Выберите несколько исходных файлов и исключите их сразу. Очевидно, что это решение не работает, если вы обращаетесь к функциям / символам через файлы.