gpt4 book ai didi

c++ - CMake 无法确定目标 : fileloader 的链接器语言

转载 作者:行者123 更新时间:2023-11-30 01:06:45 25 4
gpt4 key购买 nike

我知道已经有一些关于这个主题的话题,但是,在阅读了其中的许多话题之后,我无法找到解决我的问题的方法。我正在研究文件加载器/解析器,并且是第一次使用 CMake。我的 CMakeList.txt 文件用于导入 XML 解析器 (xerces),目前看起来像:

cmake_minimum_required(VERSION 2.8)
project(fileloader)

set(SRCS
Source.cpp
)

include_directories(./
${SPF_ROOT}/xerces/win64/include/xercesc/dom
)

add_executables(${PROJECT_NAME} ${SRCS})

add_library(HEADER_ONLY_TARGET STATIC XMLString.hpp XercesDOMParser.hpp DOM.hpp HandlerBase.hpp PlatformUtils.hpp)
set_target_properties(HEADER_ONLY_TARGET PROPERTIES LINKER_LANGUAGE CXX)

当运行我的解决方案时,我收到的错误是“CMake 无法确定目标的链接器语言:fileloader”

我是 C++ 的新手,也是 CMake 的新手,所以希望我遗漏了一些简单的东西,但非常感谢任何和所有的帮助!

编辑:我正在编写的代码是在一台不支持互联网的机器上,所以我无法复制和粘贴整个代码,但这是导致问题的原因:

...
#include "XMLString.hpp"
#include "XercesDOMParser.hpp"
#include "DOM.hpp"
#include "HandlerBase.hpp"
#include "PlatformUtils.hpp"

class XMLReader : public IFileReader {
public:
XMLReader(){};
void read(std::ifstream& file) {
xerces::XMLPlatformUtils::Initialize();
xercesc::XercesDOMParser* parser = new xercesc::XercesDOMParser();
parser->setValidationScheme(xercesc::XercesDOMParser::Val_Always);
parser->setDoNamespaces(true);

xercesc::ErrorHandler* errHandler = (xercesc::ErrorHandler*) new xercesc::HandlerBase();
parser->setErrorHandler(errHandler);

std::getline(file, line);
newFile = line.c_str();

parser->parse(newFile);
}
}
...

最佳答案

HEADER_ONLY_TARGET不是关键字参数。

如果你想要一个只有头文件的库,使用一个接口(interface)库:

add_library(<name> INTERFACE [IMPORTED [GLOBAL]])

关于c++ - CMake 无法确定目标 : fileloader 的链接器语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45939835/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com