c++-CMAKE共享、编译错误、频繁失败
我正在用CMAKE编译文件,当我用静态库编译时,程序运行良好。但是我把它变成动态运行的时候,却报编译错误。
在此处输入图像描述 在此处输入图像描述
我的 CMakeList.txt 是:
项目(设置解析器)
设置(CMAKE_LIBRARY_OUTPUT_DIRECTORY ../lib)
add_library(${PROJECT_NAME} SHARED settingParser.cpp )
target_link_libraries(${PROJECT_NAME} jsoncpp)
AND ERROR is: 81%] Linking CXX shared library ../lib/libsettingParser.so /usr/bin/ld: /home/github/wd/littletools/3rdparty/lib/json/libjsoncpp.a(json_value.cpp.o ):警告:针对_ZN4Json10LogicErrorD1Ev' in read-only section .text.unlikely'/usr/bin/ld:/home/github/wd/littletools/3rdparty/lib/json/libjsoncpp.a(json_reader.cpp.o)的重定位:针对符号`_ZTVN4Json17CharReaderBuilderE的重定位R_X86_64_PC32 ' 制作共享对象时不能使用;使用 -fPIC /usr/bin/ld 重新编译:最终链接失败:错误值 collect2:错误:ld 返回 1 退出状态 gmake[3]: *** [settingParser/CMakeFiles/settingParser.dir/build.make:103: lib /libsettingParser.so] 错误 1 gmake 2:*** [CMakeFiles/Makefile2:410: settingParser/CMakeFiles/settingParser.dir/all] 错误 2 gmake 1: *** [CMakeFiles/Makefile2:254: CMakeFiles/trimule.dir/rule] 错误 2 gmake: *** [Makefile:137: trimule] 错误 2 mv: cannot stat '/home/github/wd/littletools/build /trimule': 没有这样的文件或目录 make[3]: *** [CMakeFiles/trimule_copyfile.dir/build.make:78: CMakeFiles/trimule_copyfile] 错误 1 make 2 : *** [CMakeFiles/Makefile2:302: CMakeFiles /trimule_copyfile./all] 错误 2 make 1 : *** [CMakeFiles/Makefile2:309: CMakeFiles/trimule_copyfile.dir/rule] 错误 2 make: *** [Makefile:163: trimule_copyfile] 错误 2 终端进程“sh '-c', 'cmake -DCMAKE_BUILD_TYPE=Debug ..; cmake --build 。--目标三毛-j 4;make trimule_copyfile'”已终止,退出代码:2。