标签: soil

在Mac OS X上编译OpenGL SOIL

我如何将SOIL(http://lonesock.net/soil.html)链接或编译到Mac OS X上的C++ OpenGL项目中?

opengl graphics textures soil

10
推荐指数
2
解决办法
6923
查看次数

在Xcode 4.2.1项目中包含标题

我正在尝试使用库,特别是Xcode 4.2.1中的SOIL(简单OpenGL图像库).在Build Phases - > Link Library with Libraries下我添加了SOIL zip存档附带的所有.h和.c文件.

当我构建项目时,我为每个.h和.c文件添加以下错误消息:

警告:跳过文件'/ Users/saw/XcodeProjects/Assignment01 copy/Assignment01/image_DXT.c'(框架和库构建阶段中的意外文件类型'sourcecode.cc')

和链接器错误:

"_SOIL_load_OGL_texture",引自:main.o中的Init()未找到架构x86_64的符号Clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)

opengl xcode soil

7
推荐指数
1
解决办法
1404
查看次数

xcode 4.0.2 SOIL库链接错误(OSX 10.6.8)

我的用户故事:我想在我的openGL程序中加载纹理.

我的问题:如何在xcode 4.0.2中正确链接SOIL库

所以,过去几天我一直在谷歌上搜索关于xcode4中的链接器警告,并且我无法自己回答 - 所以我敢于在这个主题上发布另一个帖子......(谦虚的初学者在两腿之间掖尾巴).

我的裸骨复制步骤:

  1. 我将'Simple OpenGL Image Library'解压缩到我的下载中
  2. 我将libSOIL.a拖放到我的项目文件中

    • 在"Build Phases"下,libSOIL.a会自动添加到"Link Binary With Libraries"中
    • 在"构建设置"下,我的图书馆搜索路径也会自动更新
    • 我的有效架构已经指定"i386 x86_64"

我尝试运行程序时收到此警告:

ld:警告:忽略文件/Users/Scott/Developer/Projects/SpaceRanger/Code/Production/lib/libSOIL.a,文件是为存档而构建的,而不是被链接的体系结构(x86_64)

正如我所提到的,我对编程和IDE一般都很陌生,所以我希望在OpenGL中加载纹理的简单方法(例如SOIL)对于SDL甚至GLFW都是有利的.如果我在加载一个图书馆时遇到这种麻烦,那些必须绝对不属于我的联盟.

基于搜索的其他Hit n'Miss尝试:

  • 将库添加到"编译源"只会生成更多警告
  • 切换'仅构建活动架构'是/否
  • 将方案设置为32位和64位
  • 编写我自己的纹理加载器,使用libjpg/DevIL /等.

我担心我开始破坏我的项目只是试图链接这个库.如果有人可以帮我在xcode 4.0.2中正确链接SOIL库,我将永远感激不尽.

提前谢谢你.

-kropcke

xcode soil

7
推荐指数
1
解决办法
3289
查看次数

Visual Studio 2010中的SOIL设置

我不能让 土壤与Visual Studio 2010中正常工作-我是远从VS方面的专家,但据我所知,只有下面的步骤是必要的,以获得环境工作:

属性>> C/C++>常规>>其他包含目录在SOIL.h的路径中添加

属性>>链接器>>常规>>其他库目录添加到libSOIL.a的路径

我也使用免费的GLUT,并且这里也设置了glut文件的路径 - 我还将Dubugging >> Environment Path设置为GLUT bin文件.

当我使用SOIL_load_OGL_texture时,我收到以下错误:

错误LNK2019:函数"void __cdecl init(void)"中引用了未解析的外部符号_SOIL_load_OGL_texture(?init @@ YAXXZ)

尝试将libSOIL.a重命名为libSOIL.lib和SOIL.lib,但它不起作用.然后,我构建了VC8项目并使用了.lib,如此处所示, SOIL没有正确链接,但这也不起作用.

我正在使用他们主页上的示例代码

GLuint tex_2d;
tex_2d = SOIL_load_OGL_texture
    (
        " C:\\Sunset.png",
        SOIL_LOAD_AUTO,
        SOIL_CREATE_NEW_ID,
        SOIL_FLAG_MIPMAPS | SOIL_FLAG_INVERT_Y | SOIL_FLAG_NTSC_SAFE_RGB | SOIL_FLAG_COMPRESS_TO_DXT
    );

/* check for an error during the load process */
if( 0 == tex_2d )
{
    printf( "SOIL loading error: '%s'\n", SOIL_last_result() );
}
Run Code Online (Sandbox Code Playgroud)

c opengl soil visual-studio

7
推荐指数
2
解决办法
1万
查看次数

SOIL没有正确链接

我在我的库中链接SOIL但是当我编译时,我得到这些链接器错误:

1>LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library
1>libSOIL.lib(stb_image_aug.o) : error LNK2019: unresolved external symbol __alloca referenced in function _stbi_zlib_decode_noheader_buffer
1>libSOIL.lib(image_helper.o) : error LNK2019: unresolved external symbol _sqrtf referenced in function _RGBE_to_RGBdivA2

我确实在附加依赖项中链接了libSOIL.lib.

c++ opengl soil glfw

6
推荐指数
2
解决办法
1万
查看次数

bmp图像格式可以处理透明度

我正在制作这个C++程序,它有按钮,按钮容器,聊天框等,我想用纹理包裹它.

我想为我制作的所有矩形生成一个平滑的边缘,我不希望顶点绘图方法为它做的工作,因为它消耗更多的CPU使用而且看起来不是很好,我不知道是否它可以使用纹理坐标(即glTertCoord(u,v)glVertex2f(x,y) w/c应该只有4,因为它是一个四边形)

我用来加载纹理使用SDL_LoadBMP() w/c只能加载.bmp格式.(我不确定因为它只说LoadBMP).

所以我的问题是:

  • 可以在.BMP格式处理的透明度?如果是的话,该怎么做?

  • 你能告诉我一些代码样本使用SOIL来加载格式.gif的图像或任何其他可以处理图像透明度的格式吗?

  • 四边形可以处理六边形或星形的不规则/多边形形状而不绘制其背景吗?

另外的问题

*如何导入通过c ++ opengl呈现的原始文本框,以便将文本复制到剪贴板中?至于我的节目中的聊天会话.


我创建了自己的库,使用GL_POINTS绘制文本,并且在调整窗口大小时看起来不太好,因为这些点是分散的.这需要const char*避免文本,#include <*string*>因为我希望我的程序不依赖于C++的核心功能.

所以更好的解决方案是使用位图绘制它.

有人建议使用图像绘制它,所以我真的需要透明度的东西,因为我希望它只使用四边形绘制.

opengl glut soil visual-c++

6
推荐指数
2
解决办法
2万
查看次数

在Ubuntu上编译OpenGL SOIL

如何在Ubuntu中为OpenGL链接SOIL?

编辑:

我弄清楚了这个问题,我的教授在终端上显示了定位cmd,然后我找到了必须从中获取.h的位置。

如果有人对我有这个问题,

#include "SOIL/SOIL.h"
Run Code Online (Sandbox Code Playgroud)

并在编译时链接-lSOIL

ubuntu soil

5
推荐指数
1
解决办法
6765
查看次数

在优胜美地中通过g ++链接SOIL的问题

我一直在尝试为正在使用OpenGL的项目链接SOIL。我正在运行优胜美地10.10.4。

当我尝试在代码中使用SOIL库时,出现以下错误(已更新):

ld: warning: ignoring file /usr/local/lib/libSOIL.a, 
file was built for archive which is not the architecture being linked (x86_64): /usr/local/lib/libSOIL.a
Undefined symbols for architecture x86_64:
"_SOIL_load_image", referenced from:
  init() in main-93f615.o
ld: symbol(s) not found for architecture x86_64
Run Code Online (Sandbox Code Playgroud)

我的脚步

我遵循SOIL中make文件指示的过程:make,make install。它将libSOIL.a文件放在/ usr / local / lib中,将SOIL.h放在/ usr / local / include中。我包含在我的代码中:

#include "SOIL.h"

int width, height;
unsigned char* image = SOIL_load_image("CrayonBox2.png", &width, &height, 0, SOIL_LOAD_RGB);
Run Code Online (Sandbox Code Playgroud)

我的Makefile包含以下g ++目标:

g++ -I/usr/X11R6/include -I/usr/local/include -I/opt/local/include -L/usr/local/lib/ -L/opt/local/lib -lSOIL -framework …
Run Code Online (Sandbox Code Playgroud)

c++ opengl macos soil

5
推荐指数
1
解决办法
1471
查看次数

不能在linux中使用SOIL薄荷

我正在做一项要求我使用SOIL的作业.我使用命令安装它sudo apt-get install libsoil-dev,但当我尝试编译我的程序时,我收到以下错误:

textureMain.cpp:19:18: fatal error: SOIL.h: No such file or directory
compilation terminated.
textureParams.cpp:17:18: fatal error: SOIL.h: No such file or directory
compilation terminated.
Run Code Online (Sandbox Code Playgroud)

为什么即使我安装了SOIL,我也无法编译程序?

c++ linux opengl soil

4
推荐指数
1
解决办法
3069
查看次数

将部分屏幕保存到文件(SOIL和glReadPixels)

我正在尝试保存大小为5x5像素的图像,使用SOIL将glReadPixels读入文件.

我读了像素:

int x = 400;
int y = 300;
std::vector< unsigned char* > rgbdata(4*5*5);
glReadPixels(x, y, 5, 5,GL_RGBA,GL_UNSIGNED_BYTE, &rgbdata[0]); 
Run Code Online (Sandbox Code Playgroud)

然后我尝试使用SOIL的保存图像功能保存读取数据

int save_result = SOIL_save_image
    (
    "image_patch.bmp",
    SOIL_SAVE_TYPE_BMP,
    5, 5, 4,
    rgbdata[0]
    );
Run Code Online (Sandbox Code Playgroud)

但是在尝试保存图像时,我得到了一个未处理的异常.

解决方案(Christian Rau)

int x = 400;
int y = 300;
std::vector< unsigned char > rgbdata(4*5*5);
glReadPixels(x-(5/2), y-(5/2), 5, 5,GL_RGBA,GL_UNSIGNED_BYTE, &rgbdata[0]);

int save_result = SOIL_save_image
    (
    "image_patch.bmp",
    SOIL_SAVE_TYPE_BMP,
    5, 5, 4,
    rgbdata.data()
    );
Run Code Online (Sandbox Code Playgroud)

c++ opengl soil

4
推荐指数
1
解决办法
1306
查看次数

标签 统计

soil ×10

opengl ×8

c++ ×4

xcode ×2

c ×1

glfw ×1

glut ×1

graphics ×1

linux ×1

macos ×1

textures ×1

ubuntu ×1

visual-c++ ×1

visual-studio ×1