Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Cmake在Android中使用GLM_Android_C++_Android Ndk_Std_Glm Math - Fatal编程技术网

如何使用Cmake在Android中使用GLM

如何使用Cmake在Android中使用GLM,android,c++,android-ndk,std,glm-math,Android,C++,Android Ndk,Std,Glm Math,我正在尝试用Android编译我的OpenGL应用程序。我正在使用[GLM library]0.9.4 在我之前的汇编工作包括: #include <glm/glm.hpp> 在CMakeLists.txt上使用std或libc++的标志配置似乎有一些问题 我的CMakeLists.txt是: status("") status("* Adding module Core C++ ") SET(PROJ_NAME CORE_CPP) PROJECT(${PROJ_NAME})

我正在尝试用Android编译我的OpenGL应用程序。我正在使用[GLM library]0.9.4

在我之前的汇编工作包括:

#include <glm/glm.hpp>
在CMakeLists.txt上使用std或libc++的标志配置似乎有一些问题

我的CMakeLists.txt是:

status("")
status("* Adding module Core C++ ")

SET(PROJ_NAME CORE_CPP)
PROJECT(${PROJ_NAME})

# Helper to set libs & bin paths
INCLUDE(${PATH_MAIN}/cmake_tools/scripts/helperPaths.cmake)

# Include header from Module Core
INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR}/include )

IF(DEP_GLM)
  INCLUDE_DIRECTORIES( ${PATH_GLM} )
ENDIF(DEP_GLM)

# Source
#---------------------------------------------------#
file(GLOB CORE_CPP_SRC
    "src/*.cpp"
)
file(GLOB CORE_CPP_HEADERS
    "include/*.h"
)


# Create Library
ADD_LIBRARY(${PROJ_NAME} STATIC ${CORE_CPP_SRC} ${CORE_CPP_HEADERS})
#message("Link: ${LIBRARY_DEPS}")
SET( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -pedantic -fPIC" )
SET( LIBRARY_DEPS GLESv2 log android)
TARGET_LINK_LIBRARIES(${PROJ_NAME}  ${LIBRARY_DEPS})

status("- module ${PROJ_NAME} added! ")
在以前的gcc版本中,需要在其包含中添加define _GLIBCXX_USE_C99_MATH 1,但在我的4.8版中已经添加了它
知道问题出在哪里吗?

我发现了问题,我在名称空间中包含了头,所以链接器在std中寻找另一个名称空间

#ifndef MYNAME_MATH_H
#define MYNAME_MATH_H

#include <glm/glm.hpp>  // Linker Work

namespace myname
{
    //#define _GLIBCXX_USE_C99_MATH 1
    //#include <glm/glm.hpp> // Make linker FAIL!

    //typedef glm::vec2 Vector2;
    //typedef glm::vec3 Vector3;
    //typedef glm::vec4 Vector4;
}

#endif // MYNAME_MATH_H

我发现了这个问题,我在名称空间中包含了头,所以链接器在std中寻找另一个名称空间

#ifndef MYNAME_MATH_H
#define MYNAME_MATH_H

#include <glm/glm.hpp>  // Linker Work

namespace myname
{
    //#define _GLIBCXX_USE_C99_MATH 1
    //#include <glm/glm.hpp> // Make linker FAIL!

    //typedef glm::vec2 Vector2;
    //typedef glm::vec3 Vector3;
    //typedef glm::vec4 Vector4;
}

#endif // MYNAME_MATH_H