我有一个.dll编译与各种优化标志使用g++,我如何动态链接到我的应用程序?



我有一个.dll库窗户在我用mingw++编译的在命令行使用各种标志来优化它,但我需要将其链接到我的项目,以便.dll需要运行编译后的.exe(据我所知,这是隐式/动态链接)。这最初是一个macOS项目,所以我不知道如何链接到我的Visual Studio项目,因为我似乎需要一个。lib文件。

我创建.dll的方式在lib文件夹内的CMD中输入以下命令:

g++ -shared -DNDEBUG -IC:Usersluis.lopezDocumentslibrarieseigen -march=native -ftree-vectorize -ffast-math -fstrict-aliasing -O3 -fomit-frame-pointer -fopenmp -o libfoo.dll foolibrary.cpp

是否有一种方法让我创建。lib文件在维护这些编译标志的同时?

可以添加-Wl,--output-def,libfoo.def生成libfoo.def。然后你应该能够生成一个MSVC.lib文件,参见:如何从DLL生成一个导入库(lib文件)?

但是要正确地移植到Windows,您需要确保这些符号实际上是由库使用__declspec(dllexport)导出的,并通过使用库的代码使用__declspec(dllimport)导入的,例如:dllimport和dllexport之间的链接

相关内容

最新更新