TL / DR:问题从我已经完成并且我认为重要的步骤开始(让我知道它是否不重要,我将删除它)。问题本身在页面底部。我已经发布了 3 个问题,这些问题与我在提出问题之前发布的步骤相同,但是问题有所不同。谢谢
我已经用 cmake 成功编译了libharu库,所以我可以在我自己的 c++ 项目中使用它来生成 PDF 文件。它使用 Visual Studio 2013 编译为 Debug/Win32。cmake-gui 设置如下:
Sources:
c:\Users\wakatana\Downloads\__c++_pdf__generation\libharu-RELEASE_2_3_0
Build:
C:\Users\wakatana\Downloads\__c++_pdf__generation\libharu-build32
我正在使用libharu的当前项目(从头开始创建)具有以下结构(同样是 Visual Studio 2013):
./Debug
./libharu_example
./libharu_example/Debug
./libharu_example/Debug/libharu_example.tlog
./libharu_example/libharu
./libharu_example/libharu/include
./libharu_example/libharu/lib
./libharu_example/libharu/src
./libharu_example/libharu/src/CMakeFiles
libharu/include
包含来自的文件C:\Users\wakatana\Downloads\__c++_pdf__generation\libharu-RELEASE_2_3_0\include
libharu/src
包含来自的文件C:\Users\wakatana\Downloads\__c++_pdf__generation\libharu-RELEASE_2_3_0\src
libharu/lib
包含来自的文件C:\Users\wakatana\Downloads\__c++_pdf__generation\libharu-build32\src\Debug
Visual Studio 项目设置如下:
# C/C++ -> General -> Additional Include Directories:
$(ProjectDir)libharu\include
# C/C++ -> Preprocessor -> Preprocessor Definitions:
_CRT_SECURE_NO_WARNINGS
# Linker -> General -> Additional Library Directories
$(ProjectDir)libharu\lib
# Linker -> Input -> Additional Dependencies
libhpdfd.lib
在主文件中,我以这种方式包含libharu:
#include "libharu/include/hpdf.h"
最后到问题:
在C:\Users\wakatana\Downloads\__c++_pdf__generation\libharu-build32\src\Debug
目录中还有这些文件:
libhpdfd.dll
libhpdfd.exp
libhpdfd.ilk
libhpdfd.lib
libhpdfd.pdb
libhpdfsd.lib
我也尝试设置Linker -> Input -> Additional Dependencies
为libhpdfsd.lib
,libhpdfd.dll
但唯一有效的是libhpdfd.lib
. 上述其他文件的用途是什么?我如何知道应该使用哪个 *.lib *.dll?还有为什么我需要将此指定给 Visual Studio?难道它不够聪明,可以自动加载吗?它已经指定$(ProjectDir)libharu\lib
了所有这些库的存储位置,为什么不自动选择最好的库呢?