xlnt的cmake编译缺失文件

准备使用C++对excel表格进行操作。调用的是git hub上开源的xlnt项目
https://github.com/tfussell/xlnt
在使用cmake进行编译的时候,出现了问题

img


很明显,这里面缺少了文件。

E:/xlnt-master/third-party/libstudxml/libstudxml/parser.cxx
我进入此目录

img


确实为空,请问有人知道这是开源项目的问题,还是需要我自行添加这个文件呢?
如果遇到了,请问怎么解决

看一下xint项目对cmake的版本有没有要求,可能是cmake版本不匹配。或者在提示的目录下建一个空的cxx文件。
参考:

git中通过submodule来管理依赖的,你通过git clone xlnt以后,其实submodule中的依赖库并没有下载下来,git submodule update --init去下载更新,可以参考 .gitmodules文件

[submodule "third-party/libstudxml"]
    path = third-party/libstudxml
    url = https://git.codesynthesis.com/libstudxml/libstudxml.git
不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:
    1. xlnt项目在使用cmake编译时缺失文件该怎么办?

    在使用CMake编译时缺失文件,一般是由于CMakeLists.txt文件中未正确指定要使用的源文件或头文件所致。因此,我们需要检查当前的CMakeLists.txt文件是否正确。

    首先,我们需要确认在CMakeLists.txt文件中是否包含了需要使用的源文件和头文件,可以查看是否有以下几行代码:

    add_executable(xlnt_project ${SOURCE_FILES})
    target_link_libraries(xlnt_project xlnt)
    

    其中,xlnt_project是编译目标的名称,SOURCE_FILES是需要使用的源文件列表,xlnt是需要链接的库文件。如果这些代码没有问题,那么就需要检查源代码中的文件是否存在,并且确保其路径正确。

    如果依然无法解决问题,可以考虑升级或降级CMake或xlnt项目的版本。

    1. 如何判断是否是xlnt项目本身的问题,还是需要手动添加文件?

    如果发现缺失的文件并不存在于xlnt项目中,那么很可能是出现了CMakeLists.txt文件的问题。如果确实是缺失文件,那么就需要手动添加文件。

    为了确认缺失的文件是否本应该存在于xlnt项目中,可以在其官方网站或开源社区上查询相关信息。如果有其他用户也遇到了同样的问题,那么就需要寻找发布者是否有解决方案,或者在xlnt项目的issues中提出问题,向其他社区成员寻求帮助。

    1. 缺失的文件应该在哪里添加?

    如果需要手动添加文件,那么就需要在项目的源码目录中添加该文件。在使用xlnt项目时,一般需要添加的是.xlsx或.xlsm等Excel格式的文件。

    添加文件的目录应该与CMakeLists.txt文件中指定的源文件目录相同。如果添加的文件是源文件,那么就需要在CMakeLists.txt文件中将其添加到SOURCE_FILES列表中。如果添加的是头文件,那么就需要将其添加到相应的目录中,并在源文件中包含该文件。

    例如,假设需要添加一个名为example.xlsx的文件,可以在源码目录的子目录中添加该文件,并在CMakeLists.txt文件中将其添加到源文件列表中,如下所示:

    set(SOURCE_FILES main.cpp example.xlsx)
    add_executable(xlnt_project ${SOURCE_FILES})
    target_link_libraries(xlnt_project xlnt)
    

    其中,main.cpp是主文件,例文件example.xlsx也包含在了SOURCE_FILES列表中。

    注意:虽然Excel文件也可以像源文件一样在CMakeLists.txt中直接添加,但这样做会导致源代码中包含的大量二进制文件,建议将其放在单独的目录中,方便管理和更新。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^