如何将PhysFS与CMAKE链接?

问题描述

我正在尝试在C语言游戏中使用PhysFS。我正在使用CMake生成Makefile。 CMake表示很好地找到了include文件夹和lib,但是在构建过程中出现错误:未定义对“ PHYSFS_init”的引用。

这是我的CMakeLists.txt文件

 Person =  Struct.new(:id,:name) do
  
  def print_attr
    self.each_pair do |attr_name,attr_value|
      puts "attribute name: #{attr_name},attribute value: #{attr_value}"
    end   
  end

end

a = Person.new(123,"Joe")

a.print_attr # => attribute name: id,attribute value: 123
             # => attribute name: name,attribute value: Joe
p a.class    # => Person

CMakeCache.txt:

cmake_minimum_required(VERSION 3.10)

set(PROJECT_NAME "awesome-game")

project(${PROJECT_NAME})

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)

find_package(SDL2 required)
find_package(SDL2_image required)
find_package(SDL2_mixer required)
find_package(PhysFS required)
include_directories(${SDL2_Dirs})
include_directories(${SDL2_IMAGE_Dirs})
include_directories(${SDL2_mixer_Dirs})
include_directories(${PhysFS_Dirs})


file(GLOB_RECURSE SRCS "src/*.h" "src/*.c")  
add_executable(${PROJECT_NAME} ${SRCS})
target_link_libraries(${PROJECT_NAME} PRIVATE ${SDL2_LIBRARIES} PRIVATE ${SDL2_IMAGE_LIBRARIES} PRIVATE ${SDL2_mixer_LIBRARIES})
target_link_libraries(${PROJECT_NAME} PRIVATE ${PhysFS_LIBRARY})

add_deFinitions(-DSDL_MAIN_HANDLED)

我在 /usr/local/include/physfs.h

中具有标题physfs.h

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)