|
3 / 3 / 0
Регистрация: 15.07.2012
Сообщений: 26
|
||||||
Error LNK2019: ссылка на неразрешенный внешний символ15.07.2012, 16:53. Показов 63313. Ответов 13
Метки нет (Все метки)
Попытался скомпилировать программу из книги (DerectX - это просто. Программируем графику на С++) в Visual C++ 2010 Express, получил ошибки компиляции.
Вот вывод 1>------ Построение начато: проект: DX10Text, Конфигурация: Debug Win32 ------ 1> main.cpp 1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ _D3DX10CreateFontW@48 в функции "long __cdecl InitDirect3D10(void)" (?InitDirect3D10@@YAJXZ) 1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ _D3D10CreateDeviceAndSwapChain@32 в функции "long __cdecl InitDirect3D10(void)" (?InitDirect3D10@@YAJXZ) 1>C:\Проги\Проги на C++\DrectX 10\Glava4\Text\Debug\DX10Text.exe : fatal error LNK1120: 2 неразрешенных внешних элементов ========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ========== Если понадобится, тогда вот код
Подскажите, что сделать, чтобы убрать эти ошибки.
1
|
||||||
| 15.07.2012, 16:53 | |
|
Ответы с готовыми решениями:
13
LNK2019 ссылка на неразрешенный внешний символ main error LNK2019: ссылка на неразрешенный внешний символ... |
|
117 / 75 / 5
Регистрация: 15.03.2012
Сообщений: 259
|
|
| 15.07.2012, 21:27 | |
Сообщение было отмечено как решение
Решение
В визуал студии в левом окошке правой кнопкой мышки по проекту - Add New Item (добавить) - > существующий элемент (existens item) и ищи папку с установленным DirectX SDK и в ней находишь папку Libs (библиотеки) (обычно C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Lib\x64 и выбираешь d3d11.lib Но собственно тут завист всё от того, под какую версию директы ты программу пишешь. Короче говоря, ошибки линковщика (сборщика, он же Linker - тоесть та штука, которая идёт в окне вывода после компиляции при нажатии кнопки F7) - это в основном поиск не известных внешних исмволов, в твоём случае по крайней мере, и для решения проблемы, тебе следует в проект подключать те или иные библиотеки - тоесть lib файлы. Надеюсь я понятно объяснил
![]() Добавлено через 7 минут Для общего развития напишу: когда ты подключаешь H файлы директ икса, ну например d3d11.h и тд - в них идут только заголовки функций, тоесть название функции, тип вызова параметров (stdcall к примеру), класс памяти и тд, но самого кода (тоесть тела) функции там нет и чтоб линковщик мог в код твоей прграммы подставить текст самой функции - ему собственно и надо знать, как она выглядит. Тоесть тут есть варианты, либо ты подключаешь статическую библиотеку типа LIB, либо динамическую типа DLL либо пишешь сам классы собственного директ икса и подклюбсаешь файлы типа moydirectx.h и соответствующий cpp файл в свой прект :-)))
10
|
|
|
3 / 3 / 0
Регистрация: 15.07.2012
Сообщений: 26
|
|
| 15.07.2012, 21:31 [ТС] | |
|
А разве не достаточно, того что я в Проект -> Свойства -> Каталоги VC++ добавил все *.h и *.lib файлы DirectX SDK ?
0
|
|
|
117 / 75 / 5
Регистрация: 15.03.2012
Сообщений: 259
|
|
| 15.07.2012, 23:30 | |
Сообщение было отмечено как решение
Решение
Нет недостаточно. Как протрезвею - напигшу
5
|
|
|
117 / 75 / 5
Регистрация: 15.03.2012
Сообщений: 259
|
|||||||||||||||||
| 17.07.2012, 22:44 | |||||||||||||||||
Сообщение было отмечено как решение
Решение
Помощь уже здесь
![]() В твоём случае надо добавить в проект две библиотеки D3D10.LIB и D3D10X.LIB Подключать к проекту в твоей русской студии надо так: правой кнопкой по проекту->Добавить->Существующий элемент-> ... и ищешь свои библиотеки по пути C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Lib\x86 .... Либо другой способ подключения статических библиотек: в самом начале файла с программой пишешь строчки:
(результат работы твоей программы)
Вот когда ты в своей программе написал строчки:
P.S.: Я удивляюсь компетенции некоторых ищущих здесь на форуме
7
|
|||||||||||||||||
|
3 / 3 / 0
Регистрация: 15.07.2012
Сообщений: 26
|
|||
| 17.07.2012, 23:12 [ТС] | |||
|
Но почему то всё равно пришлось писать полный путь до файлов.
0
|
|||
|
117 / 75 / 5
Регистрация: 15.03.2012
Сообщений: 259
|
|
| 18.07.2012, 00:08 | |
|
А ты выложи скриншоты со включениями путей поиска библиотек и хедеров и я тебе скажу, почему надо учится на английской студии
1
|
|
|
3 / 3 / 0
Регистрация: 15.07.2012
Сообщений: 26
|
||
| 18.07.2012, 07:44 [ТС] | ||
|
0
|
||
|
117 / 75 / 5
Регистрация: 15.03.2012
Сообщений: 259
|
|||
| 18.07.2012, 10:23 | |||
Сообщение было отмечено как решение
Решение![]() В общем так, если ты хочешь использовать 64-х битные библиотеки - тебе надо создать 64-х битную платформу. Порядок действий: 1. Платформы и решения -> Диспетчер конфигураций 2. Активная платформа решения -> Создать 3. "Введите или выберите новую платформу" -> x64 (остальное не меняй, чтоб всякие пути и прочее скопировалось с Win32, так же может выбрать для какой конфигурации ты создаёшь платформу, для Debug или Release -> в общем в этом диспетчере ты работаешь со всеми своими конфигурациями) 4. Всё, теперь в "Платформы и решения" у тебя горит x64 -> Компилируешь и радуешься жизни с 64-х битными библиотеками. 5. С своём проекте ты используешь юникод и, по этому для новой платформы x64 в зависимости от студии возможно придётся включить поддержку юникода с свойствах проекта вручную, иначе будут ошибки конвертации текстовых полей типа "DrawTextA: невозможно преобразовать параметр 2 из "const wchar_t [30]" в "LPCSTR"", но опять же в зависимости от студии этого может и не быть. Знаю, что ты ни чего не понял и по этому все детали прилагаю на скринах!
6
|
|||
|
3 / 3 / 0
Регистрация: 15.07.2012
Сообщений: 26
|
|
| 18.07.2012, 10:33 [ТС] | |
|
0
|
|
|
3 / 3 / 0
Регистрация: 15.07.2012
Сообщений: 26
|
|
| 18.07.2012, 10:44 [ТС] | |
0
|
|
|
117 / 75 / 5
Регистрация: 15.03.2012
Сообщений: 259
|
|
| 18.07.2012, 11:05 | |
0
|
|
|
117 / 75 / 5
Регистрация: 15.03.2012
Сообщений: 259
|
|
| 18.07.2012, 11:13 | |
|
А если серьёзно, то посмотри в окошко вывода компилятора, где у тебя написанно
------ Построение начато: проект: ТРУЛАЛА, Конфигурация: Debug Win32 ------ А у меня x64 Сечёшь разницу? Не знаю, почему у тебя студия при выбранной сверху конфигурации x64 компилит 32-х разрядной....давно не сидел за VS2010. Скорее всего в диспетчере конфигураций тебе надо поставить галочки и выбрать текущую активную конфигурацию.
1
|
|
|
0 / 0 / 0
Регистрация: 12.05.2015
Сообщений: 2
|
|
| 12.05.2015, 16:48 | |
|
В версии VС ++ 2008 помогло(d3d10), а в 2013 я работаю с d3d11.
0
|
|
| 12.05.2015, 16:48 | |
|
Помогаю со студенческими работами здесь
14
error LNK2019: ссылка на неразрешенный внешний символ Error LNK2019: ссылка на неразрешенный внешний символ Error LNK2019: ссылка на неразрешенный внешний символ
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|