3
我正在嘗試創建一個指定爲-fPIC
的靜態庫。如何配置CMake以使用-fPIC構建庫?
add_library(cpp-netlib_pic
STATIC
${SRCS})
set_property(TARGET cpp-netlib_pic PROPERTY POSITION_INDEPENDENT_CODE)
這是行不通的。
庫(cpp-netlib_pic
)內置了-fPIC
標誌。
cpp-netlib_pic
鏈接
其他目標做然而,有-fPIC
加入到自己的編譯器標誌,但由於cpp-netlib_pic
沒有鏈接失敗。
這裏foo
將有-fPIC
補充說:
add_library(foo
SHARED
${SRCS})
target_link_libraries(foo cpp-netlib_pic)
我已經證明了這一點給自己用make VERBOSE = 1
[ 87%] Building CXX object third_party/cpp-netlib/CMakeFiles/cpp-netlib_pic.dir/src/server_request_parsers_impl.cpp.o
/usr/bin/c++ ... -std=c++14 -Werror -Wall -Wextra ... \
-o CMakeFiles/cpp-netlib_pic.dir/src/server_request_parsers_impl.cpp.o \
-c .../third_party/cpp-netlib/src/server_request_parsers_impl.cpp
注意沒有-fPIC
這裏。
在構建目標foo
它採用cpp-netlib_pic
,-fPIC
出現:
[ 93%] Building CXX object foo.cc.o
/usr/bin/c++ ... -std=c++14 -Werror -Wall -Wextra ... -fPIC ... \
-o CMakeFiles/foo_shared_lib.dir/foo.cc.o \
-c .../foo/foo.cc
如何配置CMake的與-fPIC
建立第一個庫(cpp-netlib_pic
)?
Waaaaht?謝謝!我不知道我是如何錯過的! –