Форум программистов, компьютерный форум CyberForum.ru

Как сделать доступными функции из другого проекта инклудом .h файла - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.62
nill
8 / 8 / 0
Регистрация: 16.08.2009
Сообщений: 417
05.11.2013, 11:40     Как сделать доступными функции из другого проекта инклудом .h файла #1
В одном решении Visual Studio 2010 есть два проекта, мне понадобилось включить функции и глобальные переменные из проекта №1 в проекта №2 .

Во втором проекте сделал просто инклуд .h файла с прототипами нужных функций
C++
1
#include "../PUT_do_proekta№1/main.h"
В результате получил ошибки типа
error LNK2019: ссылка на неразрешенный внешний символ "void __cdecl gws_vars(void)" (?gws_vars@@YAXXZ)

А если сделать
C++
1
#include "../PUT_do_proekta№1/main.сpp"
То все ок.

В первом же проекте когда делаю инклуд с нужными функциями

C++
1
#include “main.h"
То все ок, а если
C++
1
#include “main.сpp"
, то лезут ошибки.

Почему такие ошибки во втором проекте ?
Всегда думал что достаточно включить просто .h файл в котором есть прототипы функций и все эти функции станут доступны.

Может конечно дело в том что второй проект физически находится в другой папке, но я же указываю полный путь до нужного .h файла.

Хотелось бы чтобы во второй проект достаточно было бы включать только .h файл, можно ли такое сделать ? может в настройках Visual Studio 2010 для второго проекта что то нужно прописать ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.11.2013, 11:40     Как сделать доступными функции из другого проекта инклудом .h файла
Посмотрите здесь:

C++ Как импортировать ресурс "диалоговое окно" из другого проекта?
C++ Как сделать заключительную компиляцию проекта
C++ Вызов функции из другого файла
C++ пытаюсь сделать реализацию через считывание из файла кол-ва чисел, i,но незнаю как сделать реализацию из файла в массив и сортировки.
C++ Вызов функции из другого файла.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
aLarman
636 / 557 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
05.11.2013, 15:27     Как сделать доступными функции из другого проекта инклудом .h файла #2
Цитата Сообщение от nill Посмотреть сообщение
Почему такие ошибки во втором проекте ?
потому что вы имеете ф-цию мэйн определенную 2 раза
Цитата Сообщение от nill Посмотреть сообщение
Всегда думал что достаточно включить просто .h файл в котором есть прототипы функций и все эти функции станут доступны.
недостаточно, еще необходима их реализация, или включите либфайл из скомпилированного проекта(того проекта откуда нужны ф-ции) или пропишите в настройках проекта путь к cpp фалу с реализациями данных ф-ций
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5548 / 2562 / 233
Регистрация: 01.11.2011
Сообщений: 6,333
Завершенные тесты: 1
05.11.2013, 15:54     Как сделать доступными функции из другого проекта инклудом .h файла #3
А еще для общего развития можно почитать про разницу между
C++
1
#include “main.сpp"
и
C++
1
#include <main.сpp>
nill
8 / 8 / 0
Регистрация: 16.08.2009
Сообщений: 417
06.11.2013, 13:31  [ТС]     Как сделать доступными функции из другого проекта инклудом .h файла #4
aLarman,
или пропишите в настройках проекта путь к cpp фалу с реализациями данных ф-ций
А где это найти в VS2010 ?

Добавлено через 1 час 44 минуты
В общем для второго проекта сделал так
1) project->properties->configuration properties-> c/c++ ->general->additional include directories добавил папку с файлами из первого проекта чтобы не прописывать каждый раз полный путь

2) Добавил в проект файл main.сpp с функцией из меню Добавить существующий файл

3) После чего делаю #include “main.h" в нужные срр файлы второго проекта и вроде все рабоает

Прокомментируйте плз все правильно сделал ? требование одно чем проще тем лучше

Добавлено через 19 часов 47 минут
ну скажите плз так или нет все сделал чтобы я был спокоен ?
Raali
572 / 276 / 12
Регистрация: 06.07.2013
Сообщений: 917
Завершенные тесты: 1
06.11.2013, 13:39     Как сделать доступными функции из другого проекта инклудом .h файла #5
вообще по-хорошему надо добавить cpp с нужными данными из одного проекта к другому(добавить в сам проект уже сужествующие CPP) или делать статическую библиотеку

Добавлено через 4 минуты
Цитата Сообщение от nill Посмотреть сообщение
2) Добавил в проект файл main.сpp с функцией из меню Добавить существующий файл
3) После чего делаю #include “main.h" в нужные срр файлы второго проекта и вроде все рабоает
по сути так и нужно если main.cpp и есть тот файл с необходимыми функциями
nill
8 / 8 / 0
Регистрация: 16.08.2009
Сообщений: 417
07.11.2013, 11:05  [ТС]     Как сделать доступными функции из другого проекта инклудом .h файла #6
Raali,

А такой еще вопрос, допустим файл реализации с функциями из другого проекта содержит .h файлы того проекта, то мне их тоже надо включать во второй проект через меню Добавить существующий файл или просто в свойствах проекта прописать дополнительный путь для директивы include и все ?

И допустим мне надо передать кому то второй проект физически, то как можно это сделать чтобы не передавать первый, как то можно скопирповать не в ручную все файлы реализации с функциями которые включены в проект ?
Raali
572 / 276 / 12
Регистрация: 06.07.2013
Сообщений: 917
Завершенные тесты: 1
07.11.2013, 12:05     Как сделать доступными функции из другого проекта инклудом .h файла #7
Цитата Сообщение от nill Посмотреть сообщение
А такой еще вопрос, допустим файл реализации с функциями из другого проекта содержит .h файлы того проекта, то мне их тоже надо включать во второй проект через меню Добавить существующий файл или просто в свойствах проекта прописать дополнительный путь для директивы include и все ?
можно просто путь прописать и включать через #include <>
Цитата Сообщение от nill Посмотреть сообщение
И допустим мне надо передать кому то второй проект физически, то как можно это сделать чтобы не передавать первый, как то можно скопирповать не в ручную все файлы реализации с функциями которые включены в проект ?
обычно зависимости всегда таскают рядом) можно создать .lib файл первого и передавать только header'ы
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.11.2013, 12:59     Как сделать доступными функции из другого проекта инклудом .h файла
Еще ссылки по теме:

C++ Как сделать компоненты базового класса доступными в производном классе, но недоступными вне классов?
Как в среде Dev-C++ сделать доступными технологии OpenMP? C++
Как подключить объектный файл из другого проекта? C++

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

Или воспользуйтесь поиском по форуму:
nill
8 / 8 / 0
Регистрация: 16.08.2009
Сообщений: 417
07.11.2013, 12:59  [ТС]     Как сделать доступными функции из другого проекта инклудом .h файла #8
Raali,
обычно зависимости всегда таскают рядом)
Таскают рядом это как ?
.сpp и .h файлы которые используются в нескольких проектах кладут в одну физическую папку ?
Yandex
Объявления
07.11.2013, 12:59     Как сделать доступными функции из другого проекта инклудом .h файла
Ответ Создать тему
Опции темы

Текущее время: 18:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru