Tôi đang sử dụng CMake cho một dự án có hai phiên bản, một trong số đó yêu cầu -lglapi và một phiên bản khác thì không.Phụ thêm vào CMAKE_C_FLAGS
Cho đến nay các dòng chúng tôi sử dụng cái nhìn như thế:
SET(CMAKE_C_FLAGS "-O3 -xSSE3 -restrict -lpthread -lX11 -ldrm")
SET(CMAKE_CXX_FLAGS "-O3 -xSSE3 -restrict -lpthread -lX11 -ldrm")
tôi đã thêm một câu lệnh if trong CMakeList.txt của tôi chính xác sau khi những dòng:
if(SINGLE_MODE)
SET(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} " -lglapi")
SET(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} " -lglapi")
endif(SINGLE_MODE)
Biến SINGLE_MODE được định nghĩa một chút lên. Khi tôi sử dụng lệnh nhắn để hiển thị nội dung của các biến cờ có vẻ ổn:
-O3 -xSSE3 -restrict -lpthread -lX11 -ldrm -lglapi
Nhưng khi tôi bắt đầu biên soạn tôi chạy vào một lỗi biên dịch. Sử dụng chế độ tiết, tôi nhận ra rằng trong trình biên dịch, nó trông giống như sau:
-O3 -xSSE3 -restrict -lpthread -lX11 -ldrm; -lglapi
I.e. bằng cách nào đó một dấu chấm phẩy đã được thêm vào trước khi thêm các -lglapi vào danh sách.
Có ai ở đây gặp phải sự cố tương tự và biết cách khắc phục sự cố này không? Tôi đã googled khá một thời gian và nghiên cứu hướng dẫn sử dụng CMake nhưng không thể nhìn thấy những gì tôi đã làm sai ở đây.
Cảm ơn, Tobias
Bạn đã thử 'SET (CMAKE_CXX_FLAGS" $ {CMAKE_CXX_FLAGS} -lglapi ")' chưa? – jpo38
@ jpo38 Bạn nên trả lời và nhận được danh tiếng xứng đáng của bạn :) – Antonio
@ jpo38, cảm ơn bạn. Điều đó đã làm các trick. Nên tự mình nghĩ về điều đó nhưng sau khi nhìn vào thứ gì đó quá lâu, bạn sẽ bị mù vì điều đó. – TobiSF