powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / ingw-3.4.2 на Slackware 11 Linux - не находит функцию при кр
5 сообщений из 5, страница 1 из 1
ingw-3.4.2 на Slackware 11 Linux - не находит функцию при кр
    #34539961
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеется mingw-3.4.2 на Slackware 11. Есть тестовая "программа" (d3dx.cpp):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
#include <windows.h>
#include <d3dx9.h>

int main(int argc, char** argv){
        D3DXVECTOR3 vec( 1 ,  1 ,  1 );
        D3DXVec3Normalize(&vec, &vec);
        return  0 ;
}

и есть её makefile:
Код: plaintext
1.
2.
3.
4.
5.
all: d3dx.cpp
        mingw-g++ -o d3dx.exe d3dx.cpp -I /mnt/win_d/dxsdk/Include/ -mwindows -L /mnt/win_d/dxsdk/Lib/x86/ -ld3dx9

clean: 
        rm -f d3dx.exe

Программу нужно скомпилить (кросс-скомпилить под Windows-платформу) с последним DirectX sdk (февраль 2007).

При компиляции (при линке, если точнее) упорно выдает:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
In file included from /mnt/win_d/dxsdk/Include/d3dx9math.h:1787,
                 from /mnt/win_d/dxsdk/Include/d3dx9.h:47,
                 from d3dx.cpp:2:
/mnt/win_d/dxsdk/Include/d3dx9math.inl: In static member function `static void* _D3DXMATRIXA16::operator new(size_t)':
/mnt/win_d/dxsdk/Include/d3dx9math.inl:993: warning: `operator new' must not return NULL unless it is declared `throw()' (or -fcheck-new is in effect)
/mnt/win_d/dxsdk/Include/d3dx9math.inl: In static member function `static void* _D3DXMATRIXA16::operator new [](size_t)':
/mnt/win_d/dxsdk/Include/d3dx9math.inl:1008: warning: `operator new' must not return NULL unless it is declared `throw()' (or -fcheck-new is in effect)
/tmp/ccXHHVoY.o(.text+0x5e):d3dx.cpp: undefined reference to `_D3DXVec3Normalize@8'
collect2: ld returned 1 exit status
make: *** [all] Error 1

Ключевой глюк это - "undefined reference to `_D3DXVec3Normalize@8""
/mnt/win_d/dxsdk - путь к SDK, D3DXVec3Normalize - stdcall функция, находящаяся в одной из d3dx-овских *.dll-ек.

Согласно вот этой статье , прогнал
d3dx9.lib при помощи reimp -c. Возникло два файла - d3dx9_33.def и d3dx9.a. Пробовал подключать их как -ld3dx9.a, пробовал подключать
оригинальный *.lib - не видит. Переименовал *.lib в libd3dx9.a - вроде бы линкер нашел библиотеку, но все равно не находит в ней _D3DXVec3Normalize@8
(который в библиотеке имеется). Согласно результатам поиска google'ом подобную проблему раньше разрешали при помощи пакета *.a файлов, подключавшихся к
mingw. Пакет больше недоступен, и файлы там были для старых версий DirectX...

Подскажите, пожалуйста, как разрулить проблему.

ЗЫ. Знаю, что скомпилится на Вин-платформе, но туда назад не тянет... Другими вариантами будут использование VC7 компилятора через wine или использование виртуальных маши,
но это не самый лучший вариант, по-моему...
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
ingw-3.4.2 на Slackware 11 Linux - не находит функцию при кр
    #34539973
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К модераторам:
Исправьте, пожалуйста, заголовок темы на нечто вроде "Mingw-3.4.2 на Slackware 11 - не линкуется с msvc библиотекой" - проглючило nntp, как я понял... :(
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
ingw-3.4.2 на Slackware 11 Linux - не находит функцию при кр
    #34540040
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
последний sdk за апрель
--------------------------------------------------------------
[не претендую на уникальность]
...
Рейтинг: 0 / 0
ingw-3.4.2 на Slackware 11 Linux - не находит функцию при кр
    #34540045
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все, разобрался, вопрос закрыт.
d3dx9.lib оказался *.lib'ом для подключения d3dx9_33.dll, и поэтому reimp -c
создавал *.def файлы, которые нужно было прогнать при помощи команды
типа "dlltool -U -d d3dx9_33.lib -l libd3dx9.a", а потом пользоваться
полученным libd3dx9.a.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
ingw-3.4.2 на Slackware 11 Linux - не находит функцию при кр
    #34540052
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cerebrum wrote:
>последний sdk за апрель

Перепутал. Это не суть важно, так как механизм приблизительно одинаков для
всех версий...
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / ingw-3.4.2 на Slackware 11 Linux - не находит функцию при кр
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]