Kaynağa Gözat

修复linux启动问题

nianhua 2 yıl önce
ebeveyn
işleme
6b8cf24d4a
3 değiştirilmiş dosya ile 6 ekleme ve 5 silme
  1. 2 2
      src/core/modulemanager.cpp
  2. 3 2
      src/utils/parseconfig.hpp
  3. 1 1
      tests/fastweb.cpp

+ 2 - 2
src/core/modulemanager.cpp

@@ -120,8 +120,8 @@ void fastweb::module_manager::start()
 #ifndef _WIN32
 		// Linux
 		{
-			m_lua_include_path += ";/usr/local/lib/lua/5.3/?.lua";
-			m_lua_include_cpath += ";/usr/local/share/lua/5.3/?.lua";
+			m_lua_include_path += ";/opt/luarocks/lib/lua/5.4/?.lua";
+			m_lua_include_cpath += ";/opt/luarocks/lib/lua/5.4/?.so";
 		}
 #endif
 		// 用户

+ 3 - 2
src/utils/parseconfig.hpp

@@ -3,6 +3,7 @@
 #include <regex>
 #include <string>
 #include <tuple>
+#include <filesystem>
 #include "util/ini.h"
 #include "util/file.h"
 #include "util/system.h"
@@ -44,7 +45,7 @@ std::tuple<bool,std::string> parseconfig(ylib::ini &ini,const std::string& ini_f
 	src_content = strutils::replace(src_content, "${current_dir}", strutils::replace(system::current_dir(),'\\','/'));
 	// 配置文件目录
 	{
-		std::string ini_dir = ylib::file::parent_dir(ini_filepath);
+		std::string ini_dir = ylib::file::parent_dir(std::filesystem::absolute(ini_filepath).string());
 		src_content = strutils::replace(strutils::replace(src_content, "${config_dir}", ini_dir), '\\', '/');
 	}
 	
@@ -68,4 +69,4 @@ std::tuple<bool,std::string> parseconfig(ylib::ini &ini,const std::string& ini_f
 	ini.open(temp_filepath);
 
     return std::make_tuple(true,"");
-}
+}

+ 1 - 1
tests/fastweb.cpp

@@ -426,7 +426,7 @@ void fastweb::install_module_linux(fastweb::module_info info)
             return;
         }
         std::cout<<"正在安装 `"<<info.name_en<<"` 库"<<std::endl;
-        auto [code,err] = execute_command("sudo luarocks install "+info.name_en+" LUA_INCDIR=/opt/lua54/include LUA_LIBDIR=/opt/lua54/lib");
+        auto [code,err] = execute_command("sudo /opt/luarocks/bin/luarocks install "+info.name_en+" LUA_INCDIR=/opt/lua54/include LUA_LIBDIR=/opt/lua54/lib");
         if(code == 0)
         {
             std::cout<<"安装成功"<<std::endl;