Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何通过cmake用-fPIC编译jsoncpp_C++_Cmake_Makefile_Static Libraries - Fatal编程技术网

C++ 如何通过cmake用-fPIC编译jsoncpp

C++ 如何通过cmake用-fPIC编译jsoncpp,c++,cmake,makefile,static-libraries,C++,Cmake,Makefile,Static Libraries,我想通过cmake用-fPIC编译jsoncpp 在jsoncpp的网站上,它解释了通常的编译方法,如下所示 mkdir -p build/debug cd build/debug cmake -DCMAKE_BUILD_TYPE=debug -DJSONCPP_LIB_BUILD_STATIC=ON -DJSONCPP_LIB_BUILD_SHARED=OFF -G "Unix Makefiles" ../.. make 如何在此步骤中使用-fPIC标志进行编译 --------------

我想通过cmake用-fPIC编译jsoncpp

在jsoncpp的网站上,它解释了通常的编译方法,如下所示

mkdir -p build/debug
cd build/debug
cmake -DCMAKE_BUILD_TYPE=debug -DJSONCPP_LIB_BUILD_STATIC=ON -DJSONCPP_LIB_BUILD_SHARED=OFF -G "Unix Makefiles" ../..
make
如何在此步骤中使用-fPIC标志进行编译

-----------------------------编辑------------------------------

我想我必须在makefile for-fPIC中放一些行

因此,我通过cmake添加makefile的内容

如何更改-fPIC标志的makefile

您必须更改CMAKE_CXX_标志和CMAKE_C_标志变量。您可以通过cmake或cmake gui来实现这一点,您必须切换高级,或者您可以按原样提供:

cmake -DCMAKE_CXX_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -DCMAKE_BUILD_TYPE=debug -DJSONCPP_LIB_BUILD_STATIC=ON -DJSONCPP_LIB_BUILD_SHARED=OFF -G "Unix Makefiles" ../..
不要费心修改Makefile,因为它将在下次运行cmake时被覆盖

在CMake 2.8.9中,您可以设置POSITION_INDEPENDENT_CODE属性 在目标上使所有后续目标位置独立。也可以在CMakeLists.txt中设置全局变量

您必须更改CMAKE_CXX_标志和CMAKE_C_标志变量。您可以通过cmake或cmake gui来实现这一点,您必须切换高级,或者您可以按原样提供:

cmake -DCMAKE_CXX_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -DCMAKE_BUILD_TYPE=debug -DJSONCPP_LIB_BUILD_STATIC=ON -DJSONCPP_LIB_BUILD_SHARED=OFF -G "Unix Makefiles" ../..
不要费心修改Makefile,因为它将在下次运行cmake时被覆盖

在CMake 2.8.9中,您可以设置POSITION_INDEPENDENT_CODE属性 在目标上使所有后续目标位置独立。也可以在CMakeLists.txt中设置全局变量

可能重复可能重复
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON ..