xerces c和cmake
发布时间:2020-12-16 07:34:39 所属栏目:百科 来源:网络整理
导读:我尝试用xerces c 3.1和cmake构建一个Xerces的小例子,但是我只得到链接问题. 这是我的cmkelists.txt: //============================================================================project(ConfiguradorXerces)cmake_minimum_required(VERSION 2.8)inc
我尝试用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' // 解决方法
我很确定target_link_libraries()宏接受目标作为其第一个参数:
target_link_libraries(<target> [item1 [item2 [...]]] [[debug|optimized|general] <item>] ...) 你忘了指定它.因此,请尝试使用target_link_libraries(${PROJECT_NAME} ${XercesLib}),而不是target_link_libraries(${XercesLib}). 希望,这解决了它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |