CMake 在 Windows 平台中修改共享库的输出路径
2024-12-11 21:59:24

今天踩了一个 CMake 中的小坑,修改共享库输出路径时发现 Windows 和 Linux 下输出位置不一致,我是这么设置的:

1
set_target_properties(mydll PROPERTIES LIBRARY_OUTPUT_DIRECTORY "lib")

这在 Linux 下没问题。但是到 Windows 下就不生效了,试了半天发现在 Windows 下的共享库目标需要设置 RUNTIME_OUTPUT_DIRECTORY 属性才生效,这是反直觉的。


正确方式是将两个属性都设置一下:

1
2
3
set_target_properties(mydll PROPERTIES
RUNTIME_OUTPUT_DIRECTORY "lib"
LIBRARY_OUTPUT_DIRECTORY "lib")

相关阅读

How to specify the output directory of a given DLL?