2016-06-30 1 views

답변

1

CMake 함수는 생각한 코드 예제에서와 같이 "값을 반환하지"않습니다. CMake가 내장 또는 함수가 값을 반환하고자하는 경우 일반적으로, 그것의 결과를 저장하는 변수의 이름을 필요 : 다음

function(foo param ret) 
    set(${ret} "hello ${param}" PARENT_SCOPE) 
endfunction() 

을, 당신은 호출자 자신에 대한 제어 흐름을 구축 할 필요가 :

foo("world" hello_world) 
message(STATUS "foo returned: ${hello_world}") 
foo(${hello_world} hello2) 
message(STATUS "foo second call returned: ${hello2}") 
+0

CMake에서 "return (x)"은 무엇을합니까? 그냥 x를 무시합니까? 그런 식으로 보입니다. 그러나 문서는 이것을 말하지 않습니다. 또한,'foo()'함수가 값을 반환하지 않을뿐만 아니라, 나의 예제에서 호출조차하지 않는다는 것에 놀랐는가? –

+0

문서에서는 구문을 'return()'으로 제공하므로'return (x)'는 정의되지 않은 동작입니다. 나는 foo가 결코이 예제에서 호출되지 않는다는 것에 전혀 놀랐지 않습니다 - 쉘 스크립트에'echo ls'를 넣는 것과 같을 것입니다.'ls'는 결코 실행되지 않을 것입니다. –

관련 문제