Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
артист
94 / 20 / 20
Регистрация: 17.09.2014
Сообщений: 1,186
Завершенные тесты: 2
#1

Подскажите как правильно подключать библиотеки и решения. (функции уже определены в *.obj)

10.01.2016, 16:16. Просмотров 805. Ответов 1
Метки нет (Все метки)

Вот тут взял самомопальный aes.

Там есть 3 исходных кода.

aes.hpp
aes.cpp
шифратор файлов в режиме CBC
3 - сама программа.
1 и 2 - библиотека и решение.

Создаю пустой консольный проект.
Создаю в папке "Файлы исходного кода" файл Source.cpp, вставляю в него код "шифратор файлов в режиме CBC".
Далее тут же создаю файл aes.cpp, и сую в него код из "aes.cpp".
Потом в папке "Заголовочные файлы" создаю файл aes.h (в aes.cpp меняю расширение инклуда) и сую туда код из "aes.hpp".
Пытаюсь скомпилировать, начало выдавать, дескать старыми функциями пользуешься, fopen и т.д.
Ставлю #define _CRT_SECURE_NO_WARNINGS перед всеми инклудами в Source.cpp.
Нажимаю компилировать, и понеслись ошибки, что функции уже определены:
Кликните здесь для просмотра всего текста

1>------ Сборка начата: проект: aes, Конфигурация: Debug Win32 ------
1> Source.cpp
1>Source.obj : error LNK2005: "public: void __thiscall aes::decrypt(unsigned char const * const,unsigned char * const)" (?decrypt@aes@@QAEXQBEQAE@Z) уже определен в aes.obj
1>Source.obj : error LNK2005: "public: void __thiscall aes::encrypt(unsigned char const * const,unsigned char * const)" (?encrypt@aes@@QAEXQBEQAE@Z) уже определен в aes.obj
1>Source.obj : error LNK2005: "public: enum aes::status __thiscall aes::expand_key(unsigned char const *,unsigned int)" (?expand_key@aes@@QAE?AW4status@1@PBEI@Z) уже определен в aes.obj
1>Source.obj : error LNK2005: "protected: static unsigned long * aes::s_box" (?s_box@aes@@1PAKA) уже определен в aes.obj
1>Source.obj : error LNK2005: "protected: static unsigned long * aes::r_box" (?r_box@aes@@1PAKA) уже определен в aes.obj
1>Source.obj : error LNK2005: "protected: static unsigned long (* aes::ft)[256]" (?ft@aes@@1PAY0BAA@KA) уже определен в aes.obj
1>Source.obj : error LNK2005: "protected: static unsigned long (* aes::rt)[256]" (?rt@aes@@1PAY0BAA@KA) уже определен в aes.obj
1>D:\Project C++\aes\Debug\aes.exe : fatal error LNK1169: обнаружен многократно определенный символ - один или более
========== Сборка: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========


Что я не так сделал?
Это явно из - за того как я подключил всё это в проект.
Вот скрин обозревателя решений ещё:
Подскажите как правильно подключать библиотеки и решения. (функции уже определены в *.obj)
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2016, 16:16
Ответы с готовыми решениями:

CodeBlocks. Как правильно подключать библиотеки
Сделал подключение реализации вот таким способом но выдает такую ошибку...

Как подключать библиотеки в VS 2012
Всем доброго времени суток. Я недавно начал изучать С++ и среду...

Как создавать и подключать библиотеки?
Здравствуйте, я искал по форуму в интернете и в книгах, но все что я находил по...

Как правильно подключать динамическую библиотеку?
Может кто объяснить как правильно подключать динамическую библиотеку в visual...

Как правильно подключать заголовочные файлы?
прошу более продвинутых прогеров чем я найти и/или сделать ту библиотеку...

1
артист
94 / 20 / 20
Регистрация: 17.09.2014
Сообщений: 1,186
Завершенные тесты: 2
10.01.2016, 16:44  [ТС] #2
Лучший ответ Сообщение было отмечено артист как решение

Решение

А, всё, разобрался.
У меня в Source.cpp был подключен:
C++
1
#include "aes.cpp"
Поставил:
C++
1
#include "aes.h"
Всё заработало...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.01.2016, 16:44

LNK 2005, переменные уже определены в другом модуле
Здравия желаю! Проблема в том, что 2 эти статические переменные определяются...

Visual Studio. Как правильно подключать инклуды?
Как правильно подключать инклуды? Работаю в консольном режиме. Инклуды...

Переменная уже определена в Form_5.obj
Здравствуйте, я наткнулся на следующую проблему и не могу решить. Вот имеется...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru