Я новичок в Linux, но я пробовал Ubuntu для базовых вещей, и мне действительно это нравится. Я хочу изучить возможность перехода с Windows. Однако в настоящее время я работаю с Microsoft Visual Studio над разработкой библиотеки DLL, написанной на C ++. DLL должна использоваться вместе с программным обеспечением в Windows (аналога для Linux нет).
Есть ли простой способ сделать это из Ubuntu? если да, то как? Некоторые люди упоминали о кросс-компиляторе Mingw, но я хочу знать, является ли это лучшим вариантом или есть еще варианты.
Благодаря
Вот решение Mingw:
http://www.mingw.org/wiki/sampleDLL
Исходный файл:
[ 117]
#include <stdio.h>
#include "example_dll.h"
__stdcall void hello(const char *s)
{
printf("Hello %s\n", s);
}
int Double(int x)
{
return 2 * x;
}
void CppFunc(void)
{
puts("CppFunc");
}
void MyClass::func(void)
{
puts("MyClass.func()");
}
Заголовочный файл:
#ifndef EXAMPLE_DLL_H
#define EXAMPLE_DLL_H
#ifdef __cplusplus
extern "C" {
#endif
#ifdef BUILDING_EXAMPLE_DLL
#define EXAMPLE_DLL __declspec(dllexport)
#else
#define EXAMPLE_DLL __declspec(dllimport)
#endif
void __stdcall EXAMPLE_DLL hello(const char *s);
int EXAMPLE_DLL Double(int x);
#ifdef __cplusplus
}
#endif
// NOTE: this function is not declared extern "C"
void EXAMPLE_DLL CppFunc(void);
// NOTE: this class must not be declared extern "C"
class EXAMPLE_DLL MyClass
{
public:
MyClass() {};
virtual ~MyClass() {};
void func(void);
};
#endif // EXAMPLE_DLL_H
Корпус:
g++ -c -DBUILDING_EXAMPLE_DLL example_dll.cpp
g++ -shared -o example_dll.dll example_dll.o -Wl,--out-implib,libexample_dll.a