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