#c #gcc #compiler-errors #compilation
#c #gcc #ошибки компилятора #Сборник
Вопрос:
Я пытаюсь создать с помощью GCC 4.6.1 проект на C 0x, который связан с библиотекой dll C 17, созданной с помощью GCC 11.2.0. Я использую IDE Netbeans 7.4 (я думаю, что это не имеет значения).
Итак, результат компиляции (с GCC 4.6.1) выглядит следующим образом: libdriver17.dll: file not recognized: File format not recognized
. libdriver17.dll
действительно ли моя библиотека dll создана с помощью GCC 11.2.0.
Мой водитель driver17.h
:
#ifndef DRIVER_H #define DRIVER_H #include lt;stdarg.hgt; #ifdef __cplusplus extern "C" { #endif const char* __stdcall init_driver(void); #ifdef __cplusplus } #endif #endif /* DRIVER_H */
driver17.cpp
:
#include lt;stringgt; #include "driver17.h" std::string my_str; const char* init_driver(){ int x = 45; my_str = std::to_string(x); return my_str.c_str(); }
main_cpp0x.cpp
:
#include "../dependencies/driver17.h" #include lt;iostreamgt; int main(){ std::coutlt;lt;init_driver()lt;lt;std::endl; }
мой c 0x Makefile
:
g -std=c 0x main_cpp0x.cpp -o test -I../dependencies -L../dependencies -ldriver17
dependencies
это действительно то, где находятся мои зависимости… ( driver17.h
и libdriver17.dll
).
Я думаю, что можно связать воедино различные библиотеки DLL, созданные gcc, но я понятия не имею, что я делаю неправильно.
Кстати, я использую Windows.
Спасибо.
Ответ №1:
Я компилировал driver17
в 64 битах и main_cpp0x.cpp
в 32 битах.