Tôi muốn lưu trữ số phiên bản của thư viện của mình chỉ ở một nơi. Vì vậy, tôi đã xác định một biến như vậy trong CMake-file:Cách đọc biến CMake trong mã nguồn C++
SET(LIBINTERFACE_VERSION 1 CACHE INTEGER "Version of libInterface")
Với định nghĩa này, tôi có thể tạo ra một tập tin version.rc theo định nghĩa của Microsoft, mà tôi biên soạn vào thư viện và sau đó xuất hiện một cách chính xác trong các thuộc tính cửa sổ của tập tin dll của tôi.
Bây giờ tôi cũng muốn sử dụng biến CMake này trong mã nguồn C++ của mình, nhưng tôi thực sự không nhận được giải pháp làm việc. Tôi đã thử những điều khác nhau như thế này:
#ifndef VERSION_LIBINTERFACE
# define VERSION_LIBINTERFACE @[email protected]
#endif
hay này:
unsigned int getLibInterfaceVersion()
{
return @[email protected];
}
Nhưng trình biên dịch sẽ không chấp nhận bất cứ điều gì. Vì các nghiên cứu của tôi trong CMake-Documentation không nhận được bất kỳ kết quả nào, tôi hy vọng rằng ai đó có thể cho tôi những lời khuyên cần thiết.
Xin cảm ơn trước.
Bạn cần chuyển giá trị biến này tới trình biên dịch dưới dạng hằng số biên dịch trước. Cú pháp chính xác phụ thuộc vào trình biên dịch được sử dụng. –
Tôi đang sử dụng trình biên dịch Visual Studio 2010. Vì vậy, tôi có thể sử dụng nó như các hằng số được liệt kê trong http://msdn.microsoft.com/en-us/library/b0084kay(v=vs.80).aspx? Bạn có thể cho tôi một ví dụ? – Snowfox