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

het*_*lek 5 dll filenames qt naming version

如何阻止Qt重命名我的DL​​L MyDLLName{MAJOR_VERSION_NUM}.dll

这只发生VERSION在我的项目文件中,但我也想设置版本.例如,如果我有:

VERSION = 1.2.3.4
Run Code Online (Sandbox Code Playgroud)

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

谢谢.

Ale*_*lev 9

用这个:

CONFIG += skip_target_version_ext
Run Code Online (Sandbox Code Playgroud)


cha*_*ley 6

请参阅此答案(在SO上)了解其原因: 为什么库名称在其名称中会额外获得0?

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

"正确答案"是LIB模板正在添加版本号.

另外,请注意:

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

您可以自己明确设置,或"取消设置"其中任何一个.

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

如果你想创建自己的插件来决定如何生成目标名称(没有版本号),你可以按照这个答案中的描述制作你自己的插件(在SO上):如何避免在.so文件名中有版本号