Windows下使用gcc生成.dll动态链接库

在使用 g++ 编译器编译 C++ 程序时,-L 选项用于指定链接器搜索库文件的目录。当你使用 -L 选项时,你告诉编译器在这些指定的目录中查找需要链接的库(.a 或 .so 文件)。这个选项对于解决找不到库文件或需要链接特定版本的库时非常有用。

以下是 -L 选项的一些常见用法:

指定单个库目录:

g++ -L/path/to/library my_program.cpp -o my_program
这会在指定的目录中搜索库文件。

指定多个库目录:

g++ -L/path/to/library1 -L/path/to/library2 my_program.cpp -o my_program
这会在两个指定的目录中搜索库文件。

结合 -I 选项使用:

g++ -I/path/to/headers -L/path/to/library my_program.cpp -o my_program
这会同时在指定的头文件目录和库文件目录中进行搜索。

使用环境变量:

g++ my_program.cpp -o my_program
如果你将库目录添加到 LIBRARY_PATH 环境变量中,g++ 会自动在这些目录中搜索库文件。

请注意,-L 选项只是告诉编译器在哪里查找库文件,并不实际链接库。要链接特定的库,你需要使用 -l 选项,后面跟上不带前缀 lib 的库名。例如,要链接名为 libexample.a 或 libexample.so 的库,你应该使用 -lexample。

正确使用 -L 和 -l 选项可以确保编译器找到并链接到正确的库文件,这对于程序的成功编译和运行至关重要。

生成dll命令:

g++ test.cpp -I头文件路径 -fpic -shared -o 动态库名

这里面test.cpp保存一些函数方法

 g++ TestClass.cpp -I ../inc -fPIC -shared -o TestClass.dll

调用动态库:

g++ main.cpp -I头文件路径 -L动态库路径 -I调用的动态库  -o 可执行文件名

这里面main.cpp是带有main函数的文件,它调用test.cpp里面的函数。

g++ main.cpp -I ../inc -L. -lTestClass -o dll

posted @ 2020-03-06 15:49  BISTER  阅读(94)  评论(0)    收藏  举报  来源