提升编译错误 Mac OS X 10.7.4
boost compile error Mac OS X 10.7.4
我想在我的Mac上使用boost。
Mac OS X 10.7.4Xcode 4.5
我用自制软件安装了提升。
brew install boost
加速版本是 1.49.0。我设置了我的Xcode项目。
添加标题搜索路径。
/usr/local/Cellar/boost/1.49.0/include
添加库
libboost * .dylib
当我编译我的项目时,我有很多错误。叮当 LLVM 1.0 错误。(我想上传图片,但我不能上传,因为我的声誉不超过 10 个。
use of undeclared identifier 'nullptr_t'; did you mean 'nullptr'?
use of undeclared identifier 'nullptr_t'; did you mean 'nullptr'?
too few template arguments for class template '__is_function'
use of undeclared identifier 'nullptr_t'; did you mean 'nullptr'?
field has incomplete type 'std::exception_ptr'
expected ';' at end of declaration list
no member named 'memcpy' in namespace 'std::__1'; did you mean 'memcpy'?
no member named 'memcpy' in namespace 'std::__1'; did you mean 'memcpy'?
expected ';' at end of declaration list
expected ';' at end of declaration list
C++ requires a type specifier for all declarations
'operator==' cannot be the name of a variable or data member
use of undeclared identifier 'nullptr_t'; did you mean 'nullptr'?
expected ';' at end of declaration
expected unqualified-id
expected ';' at end of declaration list
unknown type name 'nullptr_t'
unknown type name 'nullptr_t'
qualified reference to 'shared_ptr' is a constructor name rather than a type wherever a constructor can be declared
too many errors emitted, stopping now
我检查了这个问题。
XCode with boost "语义问题 - 未声明的标识符va_start"
但我找不到答案。如果有解决方案,请告诉我。
使用 boost 的头文件是这样的。
GLTexture.hpp
#pragma once
#ifndef __GL_TEXTURE_HPP__
#define __GL_TEXTURE_HPP__
// Standard libraries.
#include <iostream>
#include <fstream>
#include <string>
#ifdef _WIN32
#pragma warning (push)
#pragma warning (disable:4819)
#endif
// Smart pointers.
#include <boost/shared_ptr.hpp>
#include <boost/scoped_ptr.hpp>
#include <boost/shared_array.hpp>
// Foreach macros.
#include <boost/foreach.hpp>
// Regular expression.
#include <boost/regex.hpp>
// Image I/O.
#define png_infopp_NULL (png_infopp)NULL
#define int_p_NULL (int*)NULL
#include <boost/gil/gil_all.hpp>
#include <boost/gil/extension/io/jpeg_io.hpp>
#include <boost/gil/extension/io/png_io.hpp>
// File operations,
#include <boost/filesystem.hpp>
// Linear algebra,
#include <boost/numeric/ublas/vector.hpp>
#include <boost/numeric/ublas/matrix.hpp>
#include <boost/numeric/ublas/io.hpp>
// String functions.
#include <boost/algorithm/string.hpp>
// Serialization
#include <boost/serialization/serialization.hpp>
#include <boost/serialization/string.hpp>
#include <boost/serialization/vector.hpp>
#include <boost/archive/xml_iarchive.hpp>
#include <boost/archive/xml_oarchive.hpp>
#include <boost/serialization/version.hpp>
#ifdef _WIN32
#pragma warning (pop)
#endif
// OpenGL and OpenGL Utility Toolkit
#ifdef _WIN32
#include <GL/glew.h>
#include <GL/GLUT.h>
#elif defined __APPLE__
#include <OpenGL/OpenGL.h>
#include <GLUT/GLUT.h>
#endif
#include "TextureManager.hpp"
#include <time.h>
class TextureManager;
using namespace std;
/// function to convert RGB image to RGBA image.
/// Filling its alpha channel with 255.
/// This function is called from boost::gil::copy_and_convert_pixels()
namespace boost {
namespace gil {
template <> void color_convert<rgb8_pixel_t,rgba8_pixel_t>(const rgb8_pixel_t& src,rgba8_pixel_t& dst);
}
}
class GLTexture
{
public:
//Destructor
~GLTexture();
//Return instance of GLTexture
static boost::shared_ptr<GLTexture> getInstance(const std::string& filename, bool _isVolatile = true);
//Load image file and generate texture
bool LoadFromFile(boost::shared_ptr<GLTexture> texture);
//Bind texture when the texture exists. If the texture doesn't exist, this method generates a texture.
static void bindTexture(boost::shared_ptr<GLTexture> texture);
//Setter of texFileName
void setTextureFile(const std::string filename);
//Setter of volatile Flag
void setIsVolatile(bool _isVolatile);
//Getter of texture ID
inline const GLuint& getTextureID(void)const{
return this->texture;
};
//Overload of operator to sort list
friend bool operator <(const boost::shared_ptr<GLTexture>& texture1, const boost::shared_ptr<GLTexture>& texture2);
friend std::ostream& operator <<(ostream& os, const boost::shared_ptr<GLTexture>& texture);
public:
GLuint texture; //texture id
std::string texFileName; //image file path
int width; //width of image
int height; //height of image
clock_t start, end; //start is the timing of bindTexture, end is the timing of delete, these are used to sort list.
bool isVolatile; //the flag whether this texture is volatile or not. true is volatile, and false is not volatile. To keep texture, this is false.
bool isRead; //the flag whether this texture already exists in texturelist. true means "exists", false means "not exists".
boost::shared_ptr<boost::gil::rgba8_image_t> pixelData_ptr; //smart pointer to contain pixelData
boost::shared_ptr<boost::gil::rgba8_image_t::const_view_t> viewwithAlpha_ptr; //smart pointer to contain viewData
private:
//Forbid copy constructor
GLTexture();
GLTexture(const std::string& imageFilePath, bool _isVolatile = false);
GLTexture(const GLTexture& glTexture);
GLTexture& operator = (const GLTexture& glTexture);
//load image from SSD
bool LoadImage(const std::string& filename);
};
#endif
TextureManager.hpp
#pragma once
#ifndef __TEXTURE_MANAGER_HPP__
#define __TEXTURE_MANAGER_HPP__
// Standard libraries.
#include <iostream>
#include <fstream>
#include <string>
#ifdef _WIN32
#pragma warning (push)
#pragma warning (disable:4819)
#endif
// Smart pointers.
#include <boost/shared_ptr.hpp>
#include <boost/shared_array.hpp>
// Foreach macros.
#include <boost/foreach.hpp>
// Regular expression.
#include <boost/regex.hpp>
// Image I/O.
#define png_infopp_NULL (png_infopp)NULL
#define int_p_NULL (int*)NULL
#include <boost/gil/gil_all.hpp>
#include <boost/gil/extension/io/jpeg_io.hpp>
#include <boost/gil/extension/io/png_io.hpp>
// File operations,
#include <boost/filesystem.hpp>
// Linear algebra,
#include <boost/numeric/ublas/vector.hpp>
#include <boost/numeric/ublas/matrix.hpp>
#include <boost/numeric/ublas/io.hpp>
// String functions.
#include <boost/algorithm/string.hpp>
// Serialization
#include <boost/serialization/serialization.hpp>
#include <boost/serialization/string.hpp>
#include <boost/serialization/vector.hpp>
#include <boost/archive/xml_iarchive.hpp>
#include <boost/archive/xml_oarchive.hpp>
#include <boost/serialization/version.hpp>
#ifdef _WIN32
#pragma warning (pop)
#endif
// OpenGL and OpenGL Utility Toolkit
#ifdef _WIN32
#include <GL/glew.h>
#include <GL/GLUT.h>
#elif defined __APPLE__
#include <OpenGL/OpenGL.h>
#include <GLUT/GLUT.h>
#endif
#include "GLTexture.hpp"
class GLTexture;
class TextureManager
{
public:
TextureManager(void);
~TextureManager(void);
//Generate Texture
static void genTexture(boost::shared_ptr<GLTexture> texture);
static void setTexture(const boost::shared_ptr<GLTexture> texture);
static void deleteTexture();
static bool checkList(const std::string& filename);
private:
//Forbid copy constructor
TextureManager(const TextureManager& texManager);
TextureManager& operator = (const TextureManager& texManager);
};
#endif
您是否对标头使用了递归搜索路径?如果是这样,请将其更改为非递归。这也许可以解决问题。
我有类似的问题!我提出了一个问题:Xcode->Buid Setting->C++语言方言(GNU++11) ->C++Standard Library(libc++(LLVM C++ with C++ 11)
我需要添加
#include <cstring>
http://en.cppreference.com/w/cpp/string/byte/memcpy
相关文章:
- libprotobuf 检查在 Mac OS 上执行程序时失败
- C++读取用户输入而不按回车键(Mac OS X),与Turbo Pascal中的读取键相同
- 如何在 MAC OS c/c++ 中阻止 USB 存储设备
- Mac os x app bundle 在下载并运行时崩溃,但在终端或更改 Info.plist 时运行良好
- const 如何防止写入特定内存 [Clang, Mac OS]
- 如何在 Mac OS 上安装 boost-mpi 及其对 clang 的依赖关系?
- 在 Mac OS 中将 QT 与 CMAKE 集成
- Homebrew OS X OpenCV - 在另一台Mac上运行时寻找dylib
- 从我的2d数组中的一列返回的字符串值被压缩为一个字符串(在Mac os上打开Windows txt文件)
- VK_ERROR_INCOMPATIBLE_DRIVER with Mac OS and Vulkan MoltenVK
- 我无法在C++(Clion,Mac OS)中运行Gurobi
- 如何在Mac OS的发布版本中包含Qt库?
- 如何将C++项目从 32 位迁移到 64 位以支持 MAC OS 10.14(莫哈韦)?
- 在 Mac OS x 中制造期间出现错误未知类型名称"constexpr"
- 无法在 Mac OS X 上链接静态资源库
- 在Mac OS X Mountain Lion(或更高版本)和Linux上使用X11/Xlib.h
- Mac OS c++ Link OpenCV and libtiff
- 使用 c++ 在 Mac OS X 上启动"new email"窗口
- 在 Mac OS 上运行 x11
- 为什么 Mac OS 指定的 TCP 端口不侦听?