我知道之前已经提出过这个一般性问题,但我找到了一个我无法找到的特定未回答的问题。
我尝试将myproj/dependencies/lua
中Lua源的本地git子模块链接到我的myproj/helloworld.c
文件。我正在让它在我的本地目录中获取Lua,因为我遇到的问题是Fedora可以在FindLua.cmake
找到我的系统Lua头但Ubuntu无法解决。我想这个问题只会在我尝试将macOS和Windows引入混合路径时加剧。
FindLua.cmake
模块仍然有用,因此我想强制它在<{1}}目录中仅搜索。我的理解意味着在myproj/dependencies/lua
中手动设置LUA_INCLUDE_DIRS
。
所以问题A 是我在大多数方法中尝试了以下语法的多次迭代:
CMakeLists.txt
然而set(LUA_INCLUDE_DIRS "{$CMAKE_SOURCE_DIR}/dependencies/lua")
没有输出任何暗示它找到Lua的内容,然后cmake .
失败并显示make
问题B 即使它确实找到它,它也会找到this,它必须在CMake的提示下以某种方式生成它可以用来链接。只在它上面运行fatal error: lua.h no such file or directory
只生成一个可执行文件。我看到有人关联标题,有些人关联make
或.a
文件。我不清楚在这种情况下应该使用哪些以及为什么。
(我以这种方式处理问题B的原因是我想要将Lua与代码一起发送,这样就可以编译它而无需安装系统Lua标头,将它们更新到新版本,或者将它们追捕。它&# 39;将被嵌入到C应用程序中。所以它并不真正需要动态特性)
只是为了彻底,这里是.so
的其余部分:
CMakeLists.txt