如何让CMake安装调试Visual Studio生成的DLL文件和EXE文件所需的配套PDB文件?
答案 0 :(得分:19)
我一直在努力寻找这个问题的好答案。我现在认为我找到了一个:使用带有$<TARGET_PDB_FILE:tgt>
生成器表达式的安装文件命令(在CMake 3.1.3和更新版本中可用)。具体来说,下面的安装命令似乎工作。该命令会将目标$ {PROJECT_NAME} pdb文件复制到目标的安装bin目录。
install(FILES $<TARGET_PDB_FILE:${PROJECT_NAME}> DESTINATION bin OPTIONAL)
该命令将为每个生成pdb文件的配置安装pdb文件。通过使用OPTIONAL
,如果源pdb文件不存在,install命令将不会生成错误。此命令用于使用add_library(${PROJECT_NAME} ...)
或add_executable(${PROJECT_NAME} ...)
命令创建的目标。
这是我找到的最佳答案。如果有更好的,请告诉我。我发现了一些难以理解的文档TARGET_PDB_FILE
生成器在&#34;信息表达式&#34; cmake-generator-expressions文档的一部分。
答案 1 :(得分:2)
此外,如果不需要单独的PDB文件,则可以使用Generate Debug Information optimized for sharing and publishing (/DEBUG:FULL)
进行调试。为此,您需要为目标import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df1 = pd.DataFrame({'A':np.random.randint(0, 100, 1000)})
f, ax = plt.subplots(figsize=(8, 8))
ax = sns.kdeplot(df1['A'], cumulative=True)
plt.show()
设置LINK_FLAGS
:
${PROJECT_NAME}
或者,如果由于某些原因您无法编辑set_target_properties(${PROJECT_NAME} PROPERTIES
LINK_FLAGS_DEBUG "-DEBUG:FULL"
)
,则可以设置CMakeLists.txt
选项: