xerces c++ and cmake
xerces c++ and cmake
我尝试使用 Xerces
C++ 3.1 和 cmake 构建一个 Xerces 的小例子,但我只遇到链接问题。这是我的 cmkelists.txt:
//============================================================================
project(ConfiguradorXerces)
cmake_minimum_required(VERSION 2.8)
include_directories (/home/ricardo/Desktop/librerias/xerces/xerces-c-3.1.1/src)
link_directories (/home/ricardo/Desktop/librerias/xerces/xerces-c-3.1.1/src/.libs)
link_directories (/home/ricardo/Desktop/librerias/xerces/xerces-c-3.1.1/src/)
set ( XercesLib xerces-c )
aux_source_directory(. SRC_LIST)
add_executable(${PROJECT_NAME} ${SRC_LIST})
target_link_libraries(${XercesLib})
//==============================================
//===
====================================================#include <iostream>
#include <xercesc/util/PlatformUtils.hpp>
using namespace xercesc;
using namespace std;
int main()
{
try {
XMLPlatformUtils::Initialize();
}
catch (const XMLException& toCatch) {
// Do your failure processing here
return 1;
}
// Do your actual work with Xerces-C++ here.
XMLPlatformUtils::Terminate();
// Other terminations and cleanup.
return 0;
}
//===
====================================================这是我的控制台输出:
CMakeFiles/ConfiguradorXerces.dir/main.cpp.o: In function `main':
main.cpp:(.text+0x25): undefined reference to `xercesc_3_1::XMLUni::fgXercescDefaultLocale'
main.cpp:(.text+0x2a): undefined reference to `xercesc_3_1::XMLPlatformUtils::Initialize(char const*, char const*, xercesc_3_1::PanicHandler*, xercesc_3_1::MemoryManager*)'
main.cpp:(.text+0x2f): undefined reference to `xercesc_3_1::XMLPlatformUtils::Terminate()'
CMakeFiles/ConfiguradorXerces.dir/main.cpp.o:(.gcc_except_table+0x10): undefined reference to `typeinfo for xercesc_3_1::XMLException'
collect2: error: ld returned 1 exit status
make[2]: *** [ConfiguradorXerces] Error 1
make[1]: *** [CMakeFiles/ConfiguradorXerces.dir/all] Error 2
make: *** [all] Error 2
16:28:55: The process "/usr/bin/make" exited with code 2.
Error while building/deploying project ConfiguradorXerces (target: Desktop)
When executing step 'Make'
//我在想我的cmakeLsits.txt不完整,有一个特殊的设置必须完成??提前感谢
我很确定target_link_libraries()
宏接受目标作为其第一个参数:
target_link_libraries(<target> [item1 [item2 [...]]]
[[debug|optimized|general] <item>] ...)
而且您忘记指定它。因此,与其target_link_libraries(${XercesLib})
,不如尝试target_link_libraries(${PROJECT_NAME} ${XercesLib})
。
希望这能解决它。
相关文章:
- BoostPython and CMake
- Qt, cmake and qhelpgenerator
- Catch2 with CMake and Visual Studio
- clang-cl and CMAKE
- CMake and pugixml
- 如何在Visual Studio 2019中使用cmake项目进行"Edit and Continue"构建?
- CMake find_package and NO_SYSTEM_ENVIRONMENT_PATH
- 使用cmake and vs在Windows上的现有代码中生成DLL
- 在 CMake for Visual Studio 2010 中定义宏"disallow copy and assign"
- CMake link atlas and llapack
- QtCreator 4 and CMake parameters
- CMake for Tesseract and OpenCV
- LTO with LLVM and CMake
- CMake and wxWidgets 2.9.5
- CMake and Window .Lib Files
- C++ OpenGL Project Setup using GLEW, assimp, SDL2 and CMake
- CMake and MsVS-NuGet
- cmake and GenerateExportHeader
- CMake and Config/Modules find_package
- CMAKE and MKOCTFILE