Я нахожусь в середине кода переноса из Visual Studio в Mingw GCC. Этот компонент отлично работает в Visual Studio, однако Mingw GCC жалуется на неопределенную ссылку на функцию. Я изолировал ситуацию и кладу вниз код здесьНеопределенная ссылка на функцию в случае библиотеки
Файл: rnG.H
#pragma once
#ifdef RNG_EXPORTS
#define RNG_API __declspec(dllexport)
#else
#define RNG_API __declspec(dllimport)
#endif
RNG_API unsigned long GetRandom(unsigned long range);
Файл: Rng.cpp
#include "Rng.h"
#include "RngKiss.h"
static TRngFile gRngFile;
unsigned long GetRandom(unsigned long range)
{
gRngFile.generate_rnd(); //Linker Error : Undefined Reference to function.
....
}
Файл: RngKiss.h
#ifndef __RNGKISS_H__
#define __RNGKISS_H__
#ifndef ULONG
typedef unsigned long ULONG;
#endif //ULONG
typedef struct
{
ULONG w, x, y, z;
} TRngRecord;
typedef struct
{
TRngRecord current, seed;
ULONG generate_rnd(void);
} TRngFile;
#endif
Файл: RngKiss.cpp
#include "RngKiss.h"
ULONG TRngFile::generate_rnd(void)
{
ULONG d;
return d;
}
Это мой выход.
g++.exe -L..\..\..\mingw64\lib\boost -o bin\Debug\TestCodeBlocks.exe obj\Debug\main.o obj\Debug\Rng.o obj\Debug\RngKiss.o
obj\Debug\Rng.o: In function `GetRandom(unsigned long)':
C:/Users/admin/TestCodeBlocks/Rng.cpp:8: undefined reference to `TRngFile::generate_rnd()'
collect2.exe: error: ld returned 1 exit status
Любые предложения по поводу того, почему я получаю эту ошибку компоновщика и как я могу ее решить?
Спасибо, что освободили это. –