я запустить программу, используя Makefile и это выглядело так:Преобразование Makefile в CMake
CXX = g++
CXXFLAGS = -c -Wall -g -std=c++11 -I/usr/local/include
OBJS = main.o Integr.o Data.o Interpolate.o
all: main
main: $(OBJS)
$(CXX) $(OBJS) -lgsl -lgslcblas -lm -o main
main.o: main.cpp
$(CXX) $(CXXFLAGS) main.cpp
Integr.o: Integr.cpp
$(CXX) $(CXXFLAGS) Integr.cpp
Data.o: Data.cpp
$(CXX) $(CXXFLAGS) Data.cpp
Interpolate.o: Interpolate.cpp
$(CXX) $(CXXFLAGS) Interpolate.cpp
clean:
rm -f *.o
, а затем я хотел отлаживать код с помощью Clion, но у меня есть проблемы с его построении. CMakeList выглядит следующим образом:
cmake_minimum_required(VERSION 3.3)
project(Desktop)
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(CMAKE_CXX_FLAGS "-o -g -std=c++11 -lgsl -lgslcblas -lm")
add_definitions(${CMAKE_CXX_FLAGS})
include_directories(-I/usr/local/include)
set(SOURCE_FILES
Data.cpp
Data.h
Integr.cpp
Integr.h
Interpolate.cpp Interpolate.h main.cpp)
add_executable(Desktop ${SOURCE_FILES})
И есть несколько ошибок, касающихся GSL, они выглядят следующим образом:
undefined reference to `gsl_rng_env_setup'
Это не правильный синтаксис для CMake. Вы предпочли бы использовать 'target_link_libraries (Desktop gsl gslcblas m)'. Если вы будете придерживаться своих переменных, вам также понадобится установить 'CMAKE_EXE_LINKER_FLAGS' вручную. – mistapink