如何使用Cmake在Android中使用GLM
我正在尝试用Android编译我的OpenGL应用程序。我正在使用[GLM library]0.9.4 在我之前的汇编工作包括:如何使用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})
#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