Qt - 不要将主版本号附加到可执行文件/库名称的末尾

时间:2013-01-31 22:34:03

标签: qt dll version filenames naming

如何阻止Qt将我的DLL重命名为MyDLLName{MAJOR_VERSION_NUM}.dll

只有在我的项目文件中设置VERSION时才会发生这种情况,但我也想设置版本。例如,如果我有:

VERSION = 1.2.3.4

我的库名为MyDll,它将在调试文件夹中创建我的DLL MyDLL1.dll。如果我取走版本号,它会保留我想要的名称(MyDLL.dll)。

感谢。

2 个答案:

答案 0 :(得分:8)

使用此:

CONFIG += skip_target_version_ext

答案 1 :(得分:6)

请参阅此答案(在SO上)了解原因:Why library name gets an additional 0 in its name?

您可以“不设置”版本将其从生成的名称中删除,但是您确定要这样做吗? (这是为了避免DLL地狱。)

“正确答案”是LIB模板正在添加版本号。

另外,请注意:

  • VERSION用于定义VER_MAJVER_MIN
  • 如果!empty
  • ,msvc_nmake生成器会将/VERSION:major.minor添加到链接标志
  • msvc_vcproj生成添加/VERSION:major.minor链接标记和MSVCPROJ_VERSION if!empty

您可以自己明确设置,或“取消设置”其中任何一个。

您可以使用TARGET_EXT变量从目标名称中明确删除版本号,例如,请参阅:http://qt-project.org/faq/answer/how_can_i_add_version_information_to_my_application

如果你想创建自己的插件来决定如何生成目标名称(没有版本号),你可以按照这个答案(在SO上)所述制作你自己的插件:How to avoid having version numbers in .so file name