Linking together dlls built with different gcc, error : file not recognized: File format not recognized

Linking together dlls built with different gcc, error : file not recognized: File format not recognized

我正在尝试使用 GCC 4.6.1 在 C++0x 中构建一个项目,该项目 link 使用 GCC 11.2.0 生成的 C++17 dll。 我使用的是 Netbeans IDE 7.4(我觉得没关系)。

因此,编译(使用 GCC 4.6.1)输出如下: libdriver17.dll: file not recognized: File format not recognizedlibdriver17.dll 确实是我用 GCC 11.2.0 生成的 dll。

我的driverdriver17.h:

#ifndef DRIVER_H
#define DRIVER_H

#include <stdarg.h>

#ifdef __cplusplus
extern "C" {
#endif
    const char* __stdcall init_driver(void);
#ifdef __cplusplus
}
#endif

#endif /* DRIVER_H */

driver17.cpp:

#include <string>
#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 <iostream>

int main(){
    std::cout<<init_driver()<<std::endl;
}

我的 c++0x Makefile:

g++ -std=c++0x main_cpp0x.cpp -o test -I../dependencies -L../dependencies -ldriver17

dependencies 确实是我的依赖所在...(driver17.hlibdriver17.dll)。

我认为可以 link 将不同的 gcc 构建的 dll 放在一起,但我不知道我做错了什么。

我正在使用 Windows 顺便说一句。

谢谢。

我在 64 位编译 driver17,在 32 位编译 main_cpp0x.cpp