Dll 多目标库命名/定位的Cygwin约定
我正在维护一个为Cygwin编译的多平台项目。我想为4个不同的“cygwin-ish”目标提供库和二进制文件Dll 多目标库命名/定位的Cygwin约定,dll,cygwin,shared-libraries,libraries,naming,Dll,Cygwin,Shared Libraries,Libraries,Naming,我正在维护一个为Cygwin编译的多平台项目。我想为4个不同的“cygwin-ish”目标提供库和二进制文件 32位cygwin 32位mingw 64位cygwin 64位mingw Cygwin公约将如何提供这四个方面 这有两个部分,二进制文件,我们称之为“runner”,以及库(“库”),它是一个动态加载的共享库,一个DLL 用户将使用交叉编译器或本机编译器为其中一个目标构建.dll。(S) 他将使用runner,它将加载用户提供的DLL和库。显然,三者的目标都需要匹配 二进制文件通常
- 32位cygwin
- 32位mingw
- 64位cygwin
- 64位mingw
.dll
。(S) 他将使用runner,它将加载用户提供的DLL和库。显然,三者的目标都需要匹配
二进制文件通常从/usr/bin
或/usr/local/bin
运行,当然,在DLL平台上,动态库将从同一位置或路径中的目录加载。由于用户还将根据库链接DLL,因此需要libliblibrary.DLL.a
,通常存储在/usr/lib
或/usr/local/lib
中
我可以看到两个主要的策略
/usr/bin/runner-32-cygwin
等,库和DLL:s将使用类似的命名。复杂性包括用户需要了解命名、运行“非自然”命名二进制文件和不同的.dll。a
:s需要引用/指向不同的dll:s
策略2将导致链接和运行时路径的复杂性,包括/usr/bin-32-cygwin
等路径
有没有一个惯例或传统的智慧来处理这个问题?我还希望您能就此事提出任何其他想法和/或想法,或对我的假设进行更正。战略#2
32位和64位是分开的
看
对
及
2013-11-26 22:42 0 usr/i686-w64-mingw32/sys-root/mingw/bin/
2013-11-26 22:42 66560 usr/i686-w64-mingw32/sys-root/mingw/bin/libbz2-1.dll
2013-11-26 22:42 0 usr/i686-w64-mingw32/sys-root/mingw/include/
2013-11-26 22:42 6231 usr/i686-w64-mingw32/sys-root/mingw/include/bzlib.h
2013-11-26 22:42 0 usr/i686-w64-mingw32/sys-root/mingw/lib/
2013-11-26 22:42 63176 usr/i686-w64-mingw32/sys-root/mingw/lib/libbz2.a
2013-11-26 22:42 23040 usr/i686-w64-mingw32/sys-root/mingw/lib/libbz2.dll.a
2013-03-07 02:54 0 usr/include/
2013-03-07 02:54 6245 usr/include/bzlib.h
2013-03-07 02:54 0 usr/lib/
2013-03-07 02:54 271704 usr/lib/libbz2.a
2013-03-07 02:54 22586 usr/lib/libbz2.dll.a
2013-03-07 02:54 65043 usr/bin/cygbz2-1.dll