math
ライブラリをCMakeファイルに追加するにはどうすればよいですか?この post は target link library を追加することを参照しますが、私はCにあまり詳しくありません。 Additional post -例を示してください。 ドキュメント Cを使用していますが、undefined reference to 'pow'
mathヘッダーのpowメソッド。
cmake_minimum_required(VERSION 3.3)
project(CSCI-E-28-Unix-Linux-Systems-Programming)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(SOURCE_FILES
CMakeLists.txt
getchar.c
main.cpp
hw0
more01.c)
#target_link_libraries(<math.h> m)
add_executable(main main.cpp)
add_executable(getchar getchar.c)
add_executable(more01 more01.c)
add_executable(argu print_all_arguments.c)
add_executable(chars chars.c)
add_executable(ch4 ch4.c)
多くの数学関数(pow
、sqrt
、fabs
、log
など)は_math.h
_および ライブラリが必要です)で宣言されていますlibm
リンクする。自動的にリンクされるlibc
とは異なり、libm
は別個のライブラリであり、多くの場合 明示的なリンケージが必要 です。 リンカはすべてのライブラリがlib
で始まると仮定します なので、libm
にリンクするにはm
にリンクします。
libm
をターゲットにリンクするには、target_link_libraries(ch4 m)
のように使用する必要があります。最初の引数はターゲットでなければなりません。したがって、次のようにadd_executable(ch4 ch4.c)
の後に使用する必要があります。
_add_executable(ch4 ch4.c)
target_link_libraries(ch4 m)
_