structs2There is no Action mapped for namespace / and action name..问题

本文介绍了Struts2中常见的找不到映射操作错误及其解决办法,重点讲解了namespace属性的正确配置方法,包括其在package和<s:form>中的使用方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

"There is no Action mapped for namespace / and action name XXX" 估计是struts2入门都会遇到的问题

简单的总结一下今天的问题:

1.把struts.xml文件放在了WEB-INF文件夹里了,这是Struts1.x的思维定势,尽管资料上明确地指明要放在WEB-INF/classes文件里(也就是myeclipse的src文件下)

2.namespace属性的设置问题:这个属性在pakage和<s:form>中都有,如果是在struts.xml文件中的pakage的属性namespace上设置了,那么在写<s:form>的action时就要写成:namespace的属性+action或者namespace的属性/../action的名称(不需加后缀),介于namespace和action名之间可以有其他路径。举个例子:若你的struts.xml的文件如下配置,请留意namespace属性

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>

    <package name="struts2" namespace="/check"  extends="struts-default">
        <action name="login" class="com.cetus.web.struts.LoginAction" >
            <result name="failure">/erro.jsp</result>
            <result name="success">/index.jsp</result>
        </action>
    </package>

   然后是登陆界面的<s:form>

    <s:form action="/check/login" method="POST" >

  <s:textfield name="username" label="用户名"></s:textfield>
  <s:textfield name="pwd" label="密码"></s:textfield>
  <s:submit value="登录"></s:submit>
  </s:form>

    <s:form>的namespace属性可写可不写,试了试乱写都没报错呢....因为配置了pakage的namespace的属性,<s:form>的action就可以配置为:action="check/login"或者action="check/a/login"等,struts在寻找action时会在namespace下的文件夹逐个找 直到找到为止。  

 

综上所述:注意namespace的用法,不配置的话,action的路径怎么写都可以,但最后的斜干后必须是动作名,如果配置了的话<s:form>的action属性就必须是namespace属性+中间可以加多级的路径也可以不加+动作名.

 

 

 

/usr/local/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h /usr/local/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h /usr/local/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h /usr/local/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h /usr/local/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h /usr/local/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h /usr/local/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h /usr/local/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h /usr/local/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h /usr/local/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h /usr/local/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h /usr/local/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h /usr/local/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h /usr/local/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h /usr/local/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h /usr/local/include/eigen3/Eigen/src/SparseQR/SparseQR.h /usr/local/include/eigen3/Eigen/src/StlSupport/StdDeque.h /usr/local/include/eigen3/Eigen/src/StlSupport/StdList.h /usr/local/include/eigen3/Eigen/src/StlSupport/StdVector.h /usr/local/include/eigen3/Eigen/src/StlSupport/details.h /usr/local/include/eigen3/Eigen/src/SuperLUSupport/SuperLUSupport.h /usr/local/include/eigen3/Eigen/src/UmfPackSupport/UmfPackSupport.h /usr/local/include/eigen3/Eigen/src/misc/Image.h /usr/local/include/eigen3/Eigen/src/misc/Kernel.h /usr/local/include/eigen3/Eigen/src/misc/RealSvd2x2.h /usr/local/include/eigen3/Eigen/src/misc/blas.h /usr/local/include/eigen3/Eigen/src/misc/lapack.h /usr/local/include/eigen3/Eigen/src/misc/lapacke.h /usr/local/include/eigen3/Eigen/src/misc/lapacke_mangling.h /usr/local/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h /usr/local/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h /usr/local/include/eigen3/Eigen/src/plugins/BlockMethods.h /usr/local/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h /usr/local/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h /usr/local/include/eigen3/Eigen/src/plugins/IndexedViewMethods.h /usr/local/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h /usr/local/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h /usr/local/include/eigen3/Eigen/src/plugins/ReshapedMethods.h /usr/local/include/eigen3/unsupported/Eigen /usr/local/include/eigen3/unsupported/Eigen/AdolcForward /usr/local/include/eigen3/unsupported/Eigen/AlignedVector3 /usr/local/include/eigen3/unsupported/Eigen/ArpackSupport /usr/local/include/eigen3/unsupported/Eigen/AutoDiff /usr/local/include/eigen3/unsupported/Eigen/BVH /usr/local/include/eigen3/unsupported/Eigen/CXX11 /usr/local/include/eigen3/unsupported/Eigen/EulerAngles /usr/local/include/eigen3/unsupported/Eigen/FFT /usr/local/include/eigen3/unsupported/Eigen/IterativeSolvers /usr/local/include/eigen3/unsupported/Eigen/KroneckerProduct /usr/local/include/eigen3/unsupported/Eigen/LevenbergMarquardt /usr/local/include/eigen3/unsupported/Eigen/MPRealSupport /usr/local/include/eigen3/unsupported/Eigen/MatrixFunctions /usr/local/include/eigen3/unsupported/Eigen/MoreVectorization /usr/local/include/eigen3/unsupported/Eigen/NonLinearOptimization /usr/local/include/eigen3/unsupported/Eigen/NumericalDiff /usr/local/include/eigen3/unsupported/Eigen/OpenGLSupport /usr/local/include/eigen3/unsupported/Eigen/Polynomials /usr/local/include/eigen3/unsupported/Eigen/Skyline /usr/local/include/eigen3/unsupported/Eigen/SparseExtra /usr/local/include/eigen3/unsupported/Eigen/SpecialFunctions /usr/local/include/eigen3/unsupported/Eigen/Splines /usr/local/include/eigen3/unsupported/Eigen/src /usr/local/include/eigen3/unsupported/Eigen/CXX11/Tensor /usr/local/include/eigen3/unsupported/Eigen/CXX11/TensorSymmetry /usr/local/include/eigen3/unsupported/Eigen/CXX11/ThreadPool /usr/local/include/eigen3/unsupported/Eigen/CXX11/src /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/util /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/Tensor.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorArgMax.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorAssign.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBase.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBlock.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBroadcasting.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorChipping.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConcatenation.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContraction.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionBlocking.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionCuda.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionGpu.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionMapper.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionSycl.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionThreadPool.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConversion.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConvolution.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConvolutionSycl.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorCostModel.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorCustomOp.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDevice.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceCuda.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceDefault.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceGpu.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceThreadPool.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDimensionList.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDimensions.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorEvalTo.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorEvaluator.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorExecutor.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorExpr.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFFT.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFixedSize.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorForcedEval.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorForwardDeclarations.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFunctors.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGenerator.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGlobalFunctions.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaDefines.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaUndefines.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIO.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorImagePatch.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIndexList.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorInflation.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorInitializer.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIntDiv.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorLayoutSwap.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMacros.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMap.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMeta.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMorphing.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorPadding.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorPatch.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorRandom.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionCuda.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionGpu.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionSycl.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorRef.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReverse.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorScan.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorScanSycl.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorShuffling.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorStorage.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorStriding.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorTrace.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorTraits.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorUInt128.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorVolumePatch.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/DynamicSymmetry.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/StaticSymmetry.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/Symmetry.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/util /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/util/TemplateGroupTheory.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/Barrier.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/EventCount.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/RunQueue.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadCancel.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadEnvironment.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadLocal.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadPoolInterface.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadYield.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Meta.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Workarounds.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/util/EmulateArray.h /usr/local/include/eigen3/unsupported/Eigen/CXX11/src/util/MaxSizeVector.h /usr/local/include/eigen3/unsupported/Eigen/src/AutoDiff /usr/local/include/eigen3/unsupported/Eigen/src/BVH /usr/local/include/eigen3/unsupported/Eigen/src/Eigenvalues /usr/local/include/eigen3/unsupported/Eigen/src/EulerAngles /usr/local/include/eigen3/unsupported/Eigen/src/FFT /usr/local/include/eigen3/unsupported/Eigen/src/IterativeSolvers /usr/local/include/eigen3/unsupported/Eigen/src/KroneckerProduct /usr/local/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt /usr/local/include/eigen3/unsupported/Eigen/src/MatrixFunctions /usr/local/include/eigen3/unsupported/Eigen/src/MoreVectorization /usr/local/include/eigen3/unsupported/Eigen/src/NonLinearOptimization /usr/local/include/eigen3/unsupported/Eigen/src/NumericalDiff /usr/local/include/eigen3/unsupported/Eigen/src/Polynomials /usr/local/include/eigen3/unsupported/Eigen/src/Skyline /usr/local/include/eigen3/unsupported/Eigen/src/SparseExtra /usr/local/include/eigen3/unsupported/Eigen/src/SpecialFunctions /usr/local/include/eigen3/unsupported/Eigen/src/Splines /usr/local/include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffJacobian.h /usr/local/include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h /usr/local/include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffVector.h /usr/local/include/eigen3/unsupported/Eigen/src/BVH/BVAlgorithms.h /usr/local/include/eigen3/unsupported/Eigen/src/BVH/KdBVH.h /usr/local/include/eigen3/unsupported/Eigen/src/Eigenvalues/ArpackSelfAdjointEigenSolver.h /usr/local/include/eigen3/unsupported/Eigen/src/EulerAngles/EulerAngles.h /usr/local/include/eigen3/unsupported/Eigen/src/EulerAngles/EulerSystem.h /usr/local/include/eigen3/unsupported/Eigen/src/FFT/ei_fftw_impl.h /usr/local/include/eigen3/unsupported/Eigen/src/FFT/ei_kissfft_impl.h /usr/local/include/eigen3/unsupported/Eigen/src/IterativeSolvers/ConstrainedConjGrad.h /usr/local/include/eigen3/unsupported/Eigen/src/IterativeSolvers/DGMRES.h /usr/local/include/eigen3/unsupported/Eigen/src/IterativeSolvers/GMRES.h /usr/local/include/eigen3/unsupported/Eigen/src/IterativeSolvers/IDRS.h /usr/local/include/eigen3/unsupported/Eigen/src/IterativeSolvers/IncompleteLU.h /usr/local/include/eigen3/unsupported/Eigen/src/IterativeSolvers/IterationController.h /usr/local/include/eigen3/unsupported/Eigen/src/IterativeSolvers/MINRES.h /usr/local/include/eigen3/unsupported/Eigen/src/IterativeSolvers/Scaling.h /usr/local/include/eigen3/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h /usr/local/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMcovar.h /usr/local/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h /usr/local/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMpar.h /usr/local/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMqrsolv.h /usr/local/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h /usr/local/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h /usr/local/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h /usr/local/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h /usr/local/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixPower.h /usr/local/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h /usr/local/include/eigen3/unsupported/Eigen/src/MatrixFunctions/StemFunction.h /usr/local/include/eigen3/unsupported/Eigen/src/MoreVectorization/MathFunctions.h /usr/local/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/HybridNonLinearSolver.h /usr/local/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h /usr/local/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/chkder.h /usr/local/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/covar.h /usr/local/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/dogleg.h /usr/local/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/fdjac1.h /usr/local/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/lmpar.h /usr/local/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/qrsolv.h /usr/local/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/r1mpyq.h /usr/local/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/r1updt.h /usr/local/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/rwupdt.h /usr/local/include/eigen3/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h /usr/local/include/eigen3/unsupported/Eigen/src/Polynomials/Companion.h /usr/local/include/eigen3/unsupported/Eigen/src/Polynomials/PolynomialSolver.h /usr/local/include/eigen3/unsupported/Eigen/src/Polynomials/PolynomialUtils.h /usr/local/include/eigen3/unsupported/Eigen/src/Skyline/SkylineInplaceLU.h /usr/local/include/eigen3/unsupported/Eigen/src/Skyline/SkylineMatrix.h /usr/local/include/eigen3/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h /usr/local/include/eigen3/unsupported/Eigen/src/Skyline/SkylineProduct.h /usr/local/include/eigen3/unsupported/Eigen/src/Skyline/SkylineStorage.h /usr/local/include/eigen3/unsupported/Eigen/src/Skyline/SkylineUtil.h /usr/local/include/eigen3/unsupported/Eigen/src/SparseExtra/BlockOfDynamicSparseMatrix.h /usr/local/include/eigen3/unsupported/Eigen/src/SparseExtra/BlockSparseMatrix.h /usr/local/include/eigen3/unsupported/Eigen/src/SparseExtra/DynamicSparseMatrix.h /usr/local/include/eigen3/unsupported/Eigen/src/SparseExtra/MarketIO.h /usr/local/include/eigen3/unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h /usr/local/include/eigen3/unsupported/Eigen/src/SparseExtra/RandomSetter.h /usr/local/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsArrayAPI.h /usr/local/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsBFloat16.h /usr/local/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsFunctors.h /usr/local/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsHalf.h /usr/local/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsImpl.h /usr/local/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsPacketMath.h /usr/local/include/eigen3/unsupported/Eigen/src/SpecialFunctions/HipVectorCompatibility.h /usr/local/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsArrayAPI.h /usr/local/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsBFloat16.h /usr/local/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsFunctors.h /usr/local/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsHalf.h /usr/local/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsImpl.h /usr/local/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsPacketMath.h /usr/local/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch /usr/local/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX /usr/local/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX512 /usr/local/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/GPU /usr/local/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/NEON /usr/local/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX/BesselFunctions.h /usr/local/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX/SpecialFunctions.h /usr/local/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/BesselFunctions.h /usr/local/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/SpecialFunctions.h /usr/local/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/GPU/SpecialFunctions.h /usr/local/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/NEON/BesselFunctions.h /usr/local/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/NEON/SpecialFunctions.h /usr/local/include/eigen3/unsupported/Eigen/src/Splines/Spline.h /usr/local/include/eigen3/unsupported/Eigen/src/Splines/SplineFitting.h /usr/local/include/eigen3/unsupported/Eigen/src/Splines/SplineFwd.h ishtar@ubuntu:~/mbplanner_ws$
最新发布
07-10
<think>我们正在讨论Eigen3库的安装路径和头文件位置。根据引用[1]和[2],Eigen3通常安装在`/usr/include/eigen3`或`/usr/local/include/eigen3`目录下。用户询问的具体路径`/usr/local/include/eigen3/Eigen/`是Eigen库的核心头文件目录,而`unsupported`目录则包含一些实验性的或尚未正式纳入主干的模块。 ### 1. Eigen3头文件路径说明 - **标准安装路径**: - Ubuntu系统通过`apt`安装的Eigen3通常位于: ```bash /usr/include/eigen3 ``` - 手动从源码编译安装的Eigen3则通常位于: ```bash /usr/local/include/eigen3 ``` - **核心头文件位置**: - 核心模块(Eigen/Core, Eigen/Dense等)位于: ```bash /usr/local/include/eigen3/Eigen # 手动安装示例 ``` 或 ```bash /usr/include/eigen3/Eigen # 系统包安装示例 ``` - **非官方模块位置**: - 实验性模块(如自动微分、矩阵函数等)位于: ```bash /usr/local/include/eigen3/unsupported # 手动安装 ``` 或 ```bash /usr/include/eigen3/unsupported # 系统包安装 ``` ### 2. `unsupported`目录内容 `unsupported`目录包含尚未被官方正式支持的模块,这些模块可能处于开发阶段或需要用户反馈。常见内容如下: | 模块路径 | 功能描述 | |---------|----------| | `Eigen/AdolcForward` | 用于Adol-C自动微分库的接口 | | `Eigen/AlignedVector3` | 对齐的3D向量 | | `Eigen/ArpackSupport` | ARPACK特征值求解器封装 | | `Eigen/AutoDiff` | 自动微分(基础实现) | | `Eigen/BVH` | 包围体层次结构(用于几何查询) | | `Eigen/EulerAngles` | 欧拉角转换工具 | | `Eigen/FFT` | 快速傅里叶变换 | | `Eigen/IterativeSolvers` | 迭代线性系统求解器增强 | | `Eigen/KroneckerProduct` | 克罗内克积运算 | | `Eigen/LevenbergMarquardt` | 非线性最小二乘优化(Levenberg-Marquardt) | | `Eigen/MatrixFunctions` | 矩阵指数、对数等函数 | | `Eigen/MoreVectorization` | 增强的向量化指令 | | `Eigen/MPRealSupport` | mpreal多精度浮点库支持 | | `Eigen/NonLinearOptimization` | 非线性优化算法 | | `Eigen/NumericalDiff` | 数值微分 | | `Eigen/OpenGLSupport` | OpenGL矩阵交互工具 | | `Eigen/Polynomials` | 多项式操作与求解 | | `Eigen/Skyline` | Skyline矩阵存储(带状矩阵变种) | | `Eigen/SparseExtra` | 稀疏矩阵附加功能 | | `Eigen/SpecialFunctions` | 特殊数学函数(如伽马函数) | | `Eigen/Splines` | 样条曲线插值 | > 注意:这些模块的API可能不稳定,使用时需谨慎。 ### 3. 路径验证方法 检查头文件是否存在: ```bash # 检查核心头文件 ls /usr/local/include/eigen3/Eigen # 检查非官方模块 ls /usr/local/include/eigen3/unsupported/Eigen ``` ### 4. 配置建议(解决编译问题) 若编译器报错找不到Eigen头文件,参考引用[1][^1][^2]的解决方案: ```bash # 方法1:建立符号链接(适用于手动安装) sudo ln -s /usr/local/include/eigen3/Eigen /usr/local/include/Eigen sudo ln -s /usr/local/include/eigen3/unsupported /usr/local/include/unsupported # 方法2:在CMake中显式指定路径 include_directories("/usr/local/include/eigen3") ``` ### 5. 多版本管理 当系统存在多个Eigen版本时(如ROS自带版本与手动安装版本冲突),使用以下方法强制指定路径: ```cmake # 在CMakeLists.txt中优先指定 set(EIGEN3_INCLUDE_DIR "/usr/local/include/eigen3") find_package(Eigen3 REQUIRED HINTS ${EIGEN3_INCLUDE_DIR}) ``` ### 附加说明 - **版本兼容性**:Eigen3不同次要版本(如3.3.x与3.4.x)可能存在API差异,建议项目显式声明依赖版本。 - **ROS集成**:ROS Noetic默认使用`/opt/ros/noetic/include/eigen3`路径,与系统路径隔离以避免冲突。 §§相关问题§§ 1. 如何检查当前项目使用的Eigen3具体版本? 2. 在ROS项目中如何正确覆盖系统默认的Eigen3路径? 3. Eigen库的`unsupported`模块有哪些典型应用场景? 4. 如何为Eigen3编写跨平台(Windows/Linux)的CMake配置?</think>### Eigen3库头文件路径与内容详解 #### 1. Eigen3标准安装路径 在Ubuntu系统中,Eigen3库的默认安装路径为: ```bash /usr/include/eigen3 # APT安装的默认路径 /usr/local/include/eigen3 # 手动编译安装的默认路径 ``` 您提到的`/usr/local/include/eigen3/Eigen/`是Eigen核心头文件的存放位置,包含所有基础线性代数功能[^1][^2]。 #### 2. Eigen核心头文件目录结构 `/usr/local/include/eigen3/Eigen/`包含以下关键头文件: ```bash Eigen/ ├── Core # 核心矩阵/向量操作 (Matrix, Vector, Array等) ├── Dense # 所有稠密矩阵功能(包含Core, Geometry, LU等) ├── Sparse # 稀疏矩阵支持 ├── Geometry # 旋转/平移/缩放等几何变换 ├── LU # 矩阵分解(PartialPivLU, FullPivLU) ├── Cholesky # LLT和LDLT分解 ├── QR # HouseholderQR, ColPivHouseholderQR ├── SVD # JacobiSVD, BDCSVD └── Eigenvalues # 特征值分解 ``` #### 3. unsupported目录内容 `/usr/local/include/eigen3/unsupported/`包含实验性功能和扩展模块: ```bash unsupported/ ├── Eigen/ │ ├── AutoDiff # 自动微分支持 │ ├── BVH # 包围体层次结构(空间划分) │ ├── FFT # 快速傅里叶变换 │ ├── IterativeSolvers # 迭代线性求解器 │ ├── KroneckerProduct # 克罗内克积运算 │ ├── LevenbergMarquardt # Levenberg-Marquardt优化算法 │ ├── MatrixFunctions # 矩阵指数/对数等函数 │ ├── MoreVectorization # 增强的向量化指令 │ ├── NonLinearOptimization # 非线性优化 │ ├── NumericalDiff # 数值微分 │ ├── Polynomials # 多项式操作 │ ├── Skyline # Skyline矩阵存储 │ └── Splines # 样条插值 └── test/ # 实验性功能的测试用例 ``` #### 4. 验证路径是否存在 使用终端命令检查: ```bash # 检查核心头文件 ls /usr/local/include/eigen3/Eigen # 检查unsupported模块 ls /usr/local/include/eigen3/unsupported/Eigen # 检查当前链接路径(重要) echo | gcc -v -x c++ -E - 2>&1 | grep eigen3 ``` #### 5. 常见配置问题解决方案 当编译器报错"Eigen/Dense: No such file"时: ```bash # 方法1:建立符号链接(推荐)[^1][^2] sudo ln -s /usr/include/eigen3/Eigen /usr/include/Eigen sudo ln -s /usr/include/eigen3/unsupported /usr/include/unsupported # 方法2:在CMake中显式指定路径 include_directories("/usr/include/eigen3") ``` #### 6. 多版本管理建议 如果系统存在多个Eigen版本: ```bash # 查看所有安装路径 sudo updatedb locate eigen3 | grep include # 强制CMake使用特定版本 set(EIGEN3_INCLUDE_DIR "/opt/ros/noetic/include/eigen3") ``` > **关键提示**:Eigen是纯头文件库,不需要链接二进制文件,只需确保头文件路径正确即可[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值