C++ 如何通过cmake用-fPIC编译jsoncpp
我想通过cmake用-fPIC编译jsoncpp 在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标志进行编译 --------------
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 ..