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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.62
nill
9 / 9 / 0
Регистрация: 16.08.2009
Сообщений: 417
#1

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

05.11.2013, 11:40. Просмотров 1818. Ответов 7
Метки нет (Все метки)

В одном решении 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++ Вызов функции из другого файла
C++ Вызов функции из другого файла.
C++ Как сделать компоненты базового класса доступными в производном классе, но недоступными вне классов?
Как в среде Dev-C++ сделать доступными технологии OpenMP? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
aLarman
640 / 561 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
05.11.2013, 15:27     Как сделать доступными функции из другого проекта инклудом .h файла #2
Цитата Сообщение от nill Посмотреть сообщение
Почему такие ошибки во втором проекте ?
потому что вы имеете ф-цию мэйн определенную 2 раза
Цитата Сообщение от nill Посмотреть сообщение
Всегда думал что достаточно включить просто .h файл в котором есть прототипы функций и все эти функции станут доступны.
недостаточно, еще необходима их реализация, или включите либфайл из скомпилированного проекта(того проекта откуда нужны ф-ции) или пропишите в настройках проекта путь к cpp фалу с реализациями данных ф-ций
SatanaXIII
Супер-модератор
Эксперт С++
5580 / 2614 / 239
Регистрация: 01.11.2011
Сообщений: 6,427
Завершенные тесты: 1
05.11.2013, 15:54     Как сделать доступными функции из другого проекта инклудом .h файла #3
А еще для общего развития можно почитать про разницу между
C++
1
#include “main.сpp"
и
C++
1
#include <main.сpp>
nill
9 / 9 / 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
622 / 326 / 34
Регистрация: 06.07.2013
Сообщений: 1,049
Завершенные тесты: 1
06.11.2013, 13:39     Как сделать доступными функции из другого проекта инклудом .h файла #5
вообще по-хорошему надо добавить cpp с нужными данными из одного проекта к другому(добавить в сам проект уже сужествующие CPP) или делать статическую библиотеку

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

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

И допустим мне надо передать кому то второй проект физически, то как можно это сделать чтобы не передавать первый, как то можно скопирповать не в ручную все файлы реализации с функциями которые включены в проект ?
Raali
622 / 326 / 34
Регистрация: 06.07.2013
Сообщений: 1,049
Завершенные тесты: 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++
C++ Вызов функции класса из другого файла.(Модель компиляции)
Использоваение static функции из другого файла C++
C++ Вызов функции из другого файла
C++ вызов функции из другого файла

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

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

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