Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
11 / 11 / 2
Регистрация: 16.08.2009
Сообщений: 434

Один .cpp файл для двух проектов

07.08.2010, 20:48. Показов 3489. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть решение в котором хочу сделать два проекта которые будут создавать два отдельных exe
Но у этих проектов куча одинаковых функций я хочу как то выделить файл .cpp который как бы будет вне двух проектов и доступный для каждого

Как это можно сделать ?
создать в регении две папки проетков, а нужный файл .cpp вынести за эти папки или как ?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.08.2010, 20:48
Ответы с готовыми решениями:

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

Объединить функционал двух проектов в один
Господа, подскажите пожалуйста как сделать из нескольких проектов один. Суть: когда-то были написаны два проекта, отлажены и худо бедно...

Один TStringList на CPP и заголовочный файл
Ребят скажите как правильно создать TStringList *spi = new TStringList; в заголовочном файле (Unit1.h), что бы можно его использовать...

10
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
07.08.2010, 22:04
nill, а может процще его просто скопировать?
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
07.08.2010, 22:10
nill, Возможно подойдет вариант, сделать функции в нужном cpp файле с модификатором extern)
0
11 / 11 / 2
Регистрация: 16.08.2009
Сообщений: 434
07.08.2010, 22:52  [ТС]
M128K145
функции постоянно изменяються я и хочу сделать одну функцию для двух проектов иначе надо править одну потом другую

Lavroff
то есть это как ?
можно схему в двух словах описать

то есть
1)Выношу .cpp файл за пределы двух проектов
2)Прописываю в нем функцию как обычно
3)В заголовочном файле каждого проекта объявляю прототип функции такого вида
C++
1
extern void moia_funcsia();
так или нет ?
0
 Аватар для abiprofi
48 / 48 / 7
Регистрация: 04.08.2010
Сообщений: 110
07.08.2010, 23:35
Классы или библиотеки не пробовали использовать?

Полностью присоединяюсь к
nill, а может процще его просто скопировать?
0
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
07.08.2010, 23:49
выделите в отдельную папку .cpp с .h, и вставляйте в проекты, а .h подключайте соответственно както так
#include "../folder/1.h"
дальше извращения можно выдилить этот спп в отдельный проект и компилировать в либу - ее и подключать ^_^
0
11 / 11 / 2
Регистрация: 16.08.2009
Сообщений: 434
08.08.2010, 01:13  [ТС]
alex_x_x,
то есть если я вставлю одну и туже физическую папку с .срр файлами в два проекта, то скажем если я что изменю в файлах из этой папки в одном проекте то в другом эти изменения тоже будут ?
0
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
08.08.2010, 01:26
nill, знаете что такое svn? Так вот alex_x_x предлагает сделать вам примитивный его аналог.

Когда у меня была подобная необходимость(только тогда мне надо было отдельно dll, отдельно программу писать и совместно их дебажить) - я просто в начало программы написал строку с таким кодом
C++
1
system("copy lib_debug_path program_debug_path");
и был всегда уверен, что использую последнюю версию библиотеки. Это для того, чтобы на время разработки не играться с путями к файлам, потому что что-нибудь да забудешь.
1
 Аватар для abiprofi
48 / 48 / 7
Регистрация: 04.08.2010
Сообщений: 110
08.08.2010, 02:04
1. Не надо ничего копировать, Project->Add Existed Item. Тогда во всех проектах будет использоваться один и тот же .cpp, можно в свойствах проекта прописать пути к CPP файлам, чтобы каждый раз не прописывать - сразу в свойствах(Options) самой студии.
2. Открыть для себя статически линкуемые библиотеки! Чтобы не мультиплицировать исходный код.
3. SVN - контроль версий.
Больше ничего не приходит в голову!!!
1
11 / 11 / 2
Регистрация: 16.08.2009
Сообщений: 434
08.08.2010, 02:15  [ТС]
M128K145,
чет я еще больше запутался
svn это онлайн папка с кодом ?

Вообще чтобы прояснить у меня два проекта но оба это DLL без проги, она идет отдельно ее отлаживать не надо

то есть вот получаеться у вас было как бы два проекта DLL и EXE
и файлы от DLL при выполнении EXE копировались в папку с программой ?

То есть если правильно понял мой вариант такой делать не два а три проетка и один из них будет состоять из общих функций для двух других проектов и каждый раз при запуске одного из двух главныхх проектов файлы из третьего проекта будут копироваться в папку одного из двух главных проектов ?

Добавлено через 3 минуты
abiprofi,
Это три разных варианта действий выполнив какой то один я получу то что нужноили мне надо все это выполнить чтобы у меня в двух проектах были одинаковые cpp файлы синхронно обновляемые ?

из пунктов пока понял только первый
если сделаю только его при изменении общего срр файла в одном проекте он будет меняться и в другом ?
0
 Аватар для abiprofi
48 / 48 / 7
Регистрация: 04.08.2010
Сообщений: 110
08.08.2010, 02:37
Да Вы правы, это три разных варианта действий, у каждого из них свои достоинства и недостатки.
1. Вы и Ваш друг, пишете программу, в которой несколько модулей (файлов .cpp, библиотек .dll и т.д)
в этом случае необходимо осуществлять контроль версий.
2. Вы начали писать проект, достигли определенного прогресса, устали. Через 1 год вернулись и т.д.
В этом случае есть один файл .cpp и куча его доработок - статические библиотеки. Одна библиотека - "одна-несколько доработок".
3. У Вас 333 проекта использующих один .cpp файл, тогда сделайте его общим.

Достаточно часто эти варианты совмещаются!!!
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.08.2010, 02:37
Помогаю со студенческими работами здесь

Один *.h для нескольких *.cpp
В файле global.h объявлены структуры и переменные, которые используются в 2-ух cpp файлах: main.cpp и interface.cpp. global.h : ...

Есть три файла. файл main.cpp и Source.cpp знают только Header.h, так как он подключен. как же подключается Source.cpp
main.cpp #include <iostream> #include"Header.h" using namespace std; int main() { A ob; ob.f(); return...

Скомпилировать 5 проектов *.CPP в *.EXE
Ребят, нужна помощь! Нужно срочно скомпилировать 5 С++ проектов в EXE - у меня Eclipse загнулся, не могу ничего поделать - нужна помощь

Одно решение для двух проектов
У меня 2 программы и я хочу чтобы у них было одно решение и, чтобы запускался именно тот проект, который я выберу в "Обозревателе...

Общий класс для двух проектов
Простейший вопрос. Есть, допустим, файл f.java: package f; public class F { public void Func() {} } И есть еще два...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru