Error Lnk2005:

  • Автор темы Автор темы cli_jmp
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
C

cli_jmp

Помогите пожалуйста разобраться.Пишу в 2005ой студии.
К примеру - есть 2 .cpp файла(main.cpp и second.cpp),использующие один и тот же заголовок(пусть это будет header.h).В заголовке объявлена переменная LPDIRECT3D9 g_lpD3D;

При компиляции выдает ошибку линкера

1>second.obj : error LNK2005: "struct IDirect3D9 * g_lpD3D" (...) already defined in main.obj

содержание заголовка:
#pragma once
#ifndef _HEADER_H
#define _HEADER_H

LPDIRECT3D9 g_lpD3D;

#endif

я решил проблему добавив /FORCE в коммандную строку линкера,и он ошибку просто игнорирует(показывает ее как WARNING)...

Не подскажете другой способ исправления данной проблемы(без /FORCE)?
 
Для: cli_jmp
Другой способ: не объявлять глобальные переменные в h-файлах и узнать что именно делает директива #include.
 
При объявлении g_lpD3D нужно использовать extern

Подробности вот ЗДЕСЬ, глава 4.3.1
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab