2016-01-06 19 views
12

Làm cách nào để thêm cờ hoặc thư viện toán học vào tệp CMake của tôi? Tài liệu này tham khảo post thêm target link library, nhưng tôi không quá quen thuộc với C. An Additional post - Có thể ai đó vui lòng minh họa một ví dụ. Documentation Tôi đang sử dụng C và tôi nhận được một undefined reference to 'pow' với phương thức pow của tiêu đề toán học.Thêm thư viện toán học với CMake

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) 
+0

Tại sao bạn đặt cờ CXX? Đây là cho C + +, không C. Và bạn đã không xác định ngôn ngữ cho dự án của bạn, nên được 'enable_language (C)'. – usr1234567

Trả lời

10

Bạn phải sử dụng nó như target_link_libraries(ch4 m).
Đối số đầu tiên phải là mục tiêu. Do đó, nó phải được sử dụng sau add_executable(ch4 ch4.c).

+2

Thật đáng ngạc nhiên điều này là không cần thiết cho Cygwin trên Windows. Nhưng đáng buồn là cần thiết trên * nix. –

Các vấn đề liên quan