2015-05-01 20 views
5

Tôi đã xây dựng một dự án bằng cmake và một số thư viện. Tuy nhiên, tôi muốn thêm một số tệp tiêu đề và .cpp vào dự án mà tôi sẽ viết mã. cách dễ nhất để làm điều đó? Tôi có thể chỉ cần tạo một tập tin .cpp và tiêu đề và sau đó xây dựng lại dự án trong Visual Studio? Hoặc do thực tế là dự án được xây dựng bằng cách sử dụng cmake tôi không thể?Thêm tiêu đề và tệp .cpp trong dự án được xây dựng với cmake

+0

Bạn đã thử chưa? Tôi nghĩ rằng bạn có thể kiểm tra nếu bạn không thể tự mình. – Shondeslitch

+0

Hãy cho chúng tôi biết những gì bạn đã thử. CMake đi kèm với trình tạo dự án Visual Studio: nếu bạn sử dụng, và sau đó tải dự án trong Visual Studio, Visual Studio sẽ có thể gọi tự động mỗi khi bạn sửa đổi tệp cmake của bạn, ví dụ để thêm tệp nguồn mới. Lưu ý: bạn thường không cần thực hiện bất kỳ điều gì đặc biệt nếu bạn thêm tiêu đề mới, chỉ khi bạn thêm tệp nguồn mới. – Antonio

Trả lời

8

Bạn có thể đặt tất cả các file header/nguồn trong cùng một thư mục và sử dụng giống như

file(GLOB SOURCES 
    header-folder/*.h 
    source-folder/*.cpp 
) 

add_executable(yourProj ${SOURCES}) 

Bằng cách này, bạn có thể làm một trong hai phương pháp sau đây để thêm mới được thêm vào header/nguồn vào VS:

  1. cần tạo lại trong CMake.
  2. giả mạo để chỉnh sửa CMakeLists.txt một chút, ví dụ: chỉ cần thêm một không gian. Và sau đó xây dựng giải pháp của bạn trong VS, nó sẽ tự động thêm các tập tin header/source mới.
+0

nhưng điều này sẽ không bao gồm, ví dụ 'header-folder/anotherdir/someheader.h'. Cách khắc phục điều đó? – dimitris93

+1

@Shiro Bạn có thể thêm một cái gì đó như 'header-folder/anotherdir/*. H' vào phần trên hoặc sử dụng [CMake subdirectories] (http://stackoverflow.com/q/7787823/2589776). – herohuyongtao

+3

'GLOB_RECURSE' thay vì tìm kiếm' GLOB' thông qua các thư mục con! Đó là những gì tôi cần. – dimitris93

2

bạn cần phải thêm mỗi tập tin .h.cpp để CMakeList.txt như thế này:

# Local header files here ONLY 
SET(TARGET_H 
    Header.h 
    Plugin.h 
    messagelog.h 
    win32application.h 
    timer.h  
    ) 

# Local source files here 
SET(TARGET_SRC 
    Plugin.cpp 
    messagelog.cpp 
    win32application.cpp 
    timer.cpp 
    ) 

sau đó cấu hình và xây dựng các giải pháp một lần nữa và lại nó trong VS.

+1

Có nhưng sau đó mỗi lần tôi muốn thêm một tiêu đề nea hoặc tập tin .cpp tôi phải rebuid toàn bộ chương trình bằng cách sử dụng cmake.Can tôi làm bất cứ điều gì để đạt được điều này thông qua Visual Studio? – mariosbikos

+0

Tôi không có một môi trường cửa sổ tiện dụng nhưng ít nhất là trên Linux, cmake được gọi tự động khi bạn cố gắng xây dựng nguồn của mình. Ngoại trừ cmake đầu tiên cấu hình thời gian, nó minh bạch cho các chỉnh sửa tiếp theo đối với bất kỳ tệp CMakeLists.txt nào. –

0

Mặc dù phản hồi trễ của nó và tôi vừa thấy nó. Tôi đang sử dụng CLion IDE từ JetBrains, điều này sẽ tự động thêm các tệp tiêu đề và .cpp này khi bạn tạo chúng. Althogh nó có thể không được nhu cầu của bạn, Nó có thể là một hữu ích cho những người khác nhìn thấy nó.

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