最近我遇到了一个可以在这个帖子中找到的CMake问题:
Cmake on OSX Yosemite 10.10.3 - GLEW: package 'gl' not found
最终它得到了解决,可能部分是由于我在XCode和CMake方面缺乏经验。 (我过去主要使用visual studio来编译项目。)
在链接线程中进行更改后,我在CMake中收到了关于我的GLEW库的警告
(这是我应该担心的还是不重要的?):
MACOSX_RPATH is not specified for the following targets:
GLEW_MX_shared
GLEW_shared
我只是忽略它并尝试在选择了ALL_BUILD目标的XCode中编译我的项目。在闪亮的目标中,它说主要的包含文件无法找到,所以我将.h文件添加到我项目的inc文件夹中。
当我再次编译时,编译器开始再次抱怨
(我不知道这个错误意味着什么以及如何修复它。):
ld: library not found for -llib
现在用Google搜索了一整天,我找不到任何解决这个问题的方法。
使用XCode作为IDE非常令人沮丧,但我真的想了解更多有关不同平台及其最受欢迎的IDE的知识,因此我可以从一开始就制作多平台应用程序,而不是之后移植它。
如果重要,我正在使用OSX Yosemite 10.10.3。
为了让我的问题更容易理解,我在我的保管箱上放了一个项目的拉链。 https://www.dropbox.com/s/xnrh90kuih9ia5a/SPARKY%202.zip?dl=0
如果我一次又一次地解释事情,请随意提问,感谢所有在此做出贡献的人。在发现这些论坛之后,我真的学会了分配。
编辑:好吧,我启动了我的Windows机器,生成了一个可视化的工作室环境并尝试在那里构建它。似乎这里也发生了同样的问题。我查看了链接器属性/标志,并看到一个lib.lib文件添加到链接过程中,看起来根本不正确。
删除文件时,错误消失,许多其他人到了! (这可以通过链接适当的库来解决,所以我不会在这里处理它们。)
我误解了我的mac上的错误,并认为它指的是我需要追捕的随机库,但实际上这是我的一个CMake文件中的不一致。
EDIT2:现在我只需要找出lib.lib的来源以及如何从项目中抛弃标志,这样我就可以生成我的环境并立即构建!
答案 0 :(得分:1)
故事的道德。有时候解决方案就在你面前,最终还是更像是在大海捞针。
我从我的根CMakeLists.txt文件中删除了以下内容,并且随机的lib.lib库已从我生成的项目中删除
SET( PROJ_LIBRARIES "lib" )
我认为这增加了一个包含库的文件夹,但实际上它所做的是为特定库添加另一个标志,因为这个变量被送到:
TARGET_LINK_LIBRARIES( ${PROJ_NAME} ${PROJ_LIBRARIES} ${OPENGL_LIBRARIES} ${GLEW_LIBRARIES} )