_pActualRawDllMain cannot be in a R/W section

本文详细介绍了如何通过调整项目属性来解决MFC警告问题,包括修改‘UseMFCinaStaticLibrary’和选择正确的运行库类型。确保了软件开发过程中的稳定性。

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

出现这种警告 需要将
项目 ->属性->general ->use of MFC 中的 " Use MFC in a Static Library" 改成 "Use MFC in a Shared DLL"
项目->属性->C/C++ ->Code Generation ->Runtime Library 中的 MD改成 MTD

不清楚这么做到底是什么原因引起的?
(base) wu@localhost:/myfile/R2020/seascape_rhel7_2022_R1.2/seascape_rhel7_2022_R1.2/RedHawk-SC/seascape_rhel7_2022_R1.2/seascape_release/2022_R1.2/linux_x86_64_rhel7/bin$ ./redhawk_sc INFO<APP.411> INFO<APP.411> Copyright(c) 2013-2022 ANSYS, Inc., All Rights Reserved. INFO<APP.411> Use is authorized only through product licensing with ANSYS, Inc. INFO<APP.411> A complete list of copyrights can be seen in the file README.3rdParty in the installed release. INFO<APP.411> INFO<APP.411> Version: 2022_R1.2 branch:release-22_R1 [Optimized code built on Apr 27 2022 @ 12:05:08 (ac33294f51)]. INFO<APP.411> SeaScape Path: /myfile/R2020/seascape_rhel7_2022_R1.2/seascape_rhel7_2022_R1.2/RedHawk-SC/seascape_rhel7_2022_R1.2/seascape_release/2022_R1.2/linux_x86_64_rhel7/bin. INFO<APP.411> Command Line: -c gp.gp_write_run_settings('/myfile/R2020/seascape_rhel7_2022_R1.2/seascape_rhel7_2022_R1.2/RedHawk-SC/seascape_rhel7_2022_R1.2/seascape_release/2022_R1.2/linux_x86_64_rhel7/bin/.ss.28812') --product redhawk_sc. INFO<APP.411> Work Directory = /myfile/R2020/seascape_rhel7_2022_R1.2/seascape_rhel7_2022_R1.2/RedHawk-SC/seascape_rhel7_2022_R1.2/seascape_release/2022_R1.2/linux_x86_64_rhel7/bin/gp.8, Log File = /myfile/R2020/seascape_rhel7_2022_R1.2/seascape_rhel7_2022_R1.2/RedHawk-SC/seascape_rhel7_2022_R1.2/seascape_release/2022_R1.2/linux_x86_64_rhel7/bin/gp.8/run.log. INFO<APP.411> PID: 28820. INFO<APP.411> Run started: 2025-Jul-11 23:48:43.368071 on host: localhost. Error in sitecustomize; set PYTHONVERBOSE for traceback: ValueError: Installation error, cannot find internal site_packages directory: /myfile/R2020/seascape_rhel7_2022_R1.2/seascape_rhel7_2022_R1.2/RedHawk-SC/seascape_rhel7_2022_R1.2/seascape_release/2022_R1.2/linux_x86_64_rhel7/ext/opt/b26/local/linux_x86_64_rhel7/lib/python3.8/site-packages WARNING<COMM.132> UNDEFINED MESSAGE AUX INFO: {"dir": "python"}. WARNING<COMM.124> UNDEFINED MESSAGE. WARNING<APP.102> UNDEFINED MESSAGE AUX INFO: {"exception_message": "Unknown exception"}. terminate called after throwing an instance of 'boost::python::error_already_set' Raising SIGKILL. /myfile/R2020/seascape_rhel7_2022_R1.2/seascape_rhel7_2022_R1.2/RedHawk-SC/seascape_rhel7_2022_R1.2/seascape_release/2022_R1.2/linux_x86_64_rhel7/bin/seascape: line 102: 28820 Killed $prefix_command $SHKEXE --pre_c "gp.set_config('gp.skip_completed_views',$skip_completed_views); gp.set_config('gp.max_num_resiliency_restarts', $max_num_resiliency_restarts); $PRODUCT_IMPORT " $run_settings_file_cmd "$@"
最新发布
07-12
<think>我们注意到新的错误信息:无法找到内部site_packages目录 错误信息:ValueError: Installation error, cannot find internal site_packages directory: .../python3.8/site-packages 这表明工具在尝试访问其自带的Python环境中的site-packages目录时失败。可能的原因包括: 1. 路径错误:工具安装时配置的路径与实际路径不符(可能由于移动了安装目录) 2. 权限问题:当前用户对指定目录没有读取权限 3. 目录缺失:安装不完整或文件系统损坏 解决方案:</think>根据最新日志显示的关键错误信息 `ValueError: Installation error, cannot find internal site_packages directory`,问题核心在于 ANSYS RedHawk-SC 无法定位其自带的 Python 环境。以下是系统性的解决方案: ### 根本原因分析 1. **路径配置错误**: - 工具安装后路径被移动(原安装路径:`/myfile/R2020/.../ext/opt/b26/local/...`) - 配置文件中的硬编码路径未更新 2. **环境变量干扰**: - 当前处于 Conda 的 `(base)` 环境,与工具内置 Python 冲突 3. **文件系统差异**: - 日志显示路径大小写不一致(`linux_x86_64_rhel7` vs 实际可能为 `Linux_x86_64_rhel7`) 4. **安装不完整**: - `site-packages` 目录缺失或权限不足 ### 完整解决方案 #### 步骤 1:验证安装路径一致性 ```bash # 检查实际安装路径 ls -ld /myfile/R2020/seascape_rhel7_2022_R1.2/*/ext/opt/b26/local # 对比工具配置路径(注意大小写) grep -r "site-packages" /myfile/R2020/seascape_rhel7_2022_R1.2/ --include="*.py" ``` #### 步骤 2:修复路径配置(关键步骤) 创建路径重定向配置文件: ```bash # 在工具bin目录下创建sitecustomize.py cat > /myfile/.../bin/sitecustomize.py <<EOF import sys, os # 修正工具内部路径映射 CORRECT_PATH = "/myfile/R2020/seascape_rhel7_2022_R1.2/.../ext/opt/b26/local/linux_x86_64_rhel7" WRONG_PATH = "/myfile/R2020/seascape_rhel7_2022_R1.2/seascape_rhel7_2022_R1.2/RedHawk-SC/seascape_rhel7_2022_R1.2/seascape_release/2022_R1.2/linux_x86_64_rhel7/ext/opt/b26/local" # 替换错误路径 sys.path = [p.replace(WRONG_PATH, CORRECT_PATH) for p in sys.path] os.environ['PYTHONPATH'] = os.environ.get('PYTHONPATH', '').replace(WRONG_PATH, CORRECT_PATH) EOF ``` #### 步骤 3:强制退出 Conda 环境 ```bash # 彻底停用conda环境 conda deactivate conda config --set auto_activate_base false source ~/.bashrc # 立即生效 # 验证环境 echo $PATH | grep -v "conda" ``` #### 步骤 4:重建符号链接 ```bash # 进入工具目录 cd /myfile/R2020/seascape_rhel7_2022_R1.2/.../ext/opt/b26/local # 创建缺失的目录链接 ln -s ../../../../.. linux_x86_64_rhel7 ``` #### 步骤 5:专用启动脚本 创建 `run_redhawk_fixed.sh`: ```bash #!/bin/bash # 禁用所有conda初始化 unset CONDA_SHLVL unset CONDA_PREFIX unset CONDA_DEFAULT_ENV # 设置工具专用环境 export ANSYS_ROOT="/myfile/R2020/seascape_rhel7_2022_R1.2/..." export PYTHONPATH="$ANSYS_ROOT/bin:$ANSYS_ROOT/ext/opt/b26/local/linux_x86_64_rhel7/lib/python3.8/site-packages" # 修复LD库路径 export LD_LIBRARY_PATH="$ANSYS_ROOT/lib:$LD_LIBRARY_PATH" # 启动前验证 if [ ! -d "$ANSYS_ROOT/ext/opt/b26/local/linux_x86_64_rhel7/lib/python3.8/site-packages" ]; then echo "错误:site-packages目录缺失!" exit 1 fi # 启动工具 exec "$ANSYS_ROOT/bin/redhawk_sc" "$@" ``` ### 终极解决方案:重定位安装 如果上述方法无效,执行官方重定位: ```bash # 进入安装管理目录 cd /myfile/R2020/seascape_rhel7_2022_R1.2/.../admin # 执行重定位脚本(需要原始安装介质) ./relocate -d /myfile/R2020/seascape_rhel7_2022_R1.2/... ``` ### 验证步骤 ```bash # 检查Python环境 ./run_redhawk_fixed.sh -c "import sys; print(sys.path)" # 预期输出应包含正确路径 ['/myfile/R2020/.../ext/opt/b26/local/linux_x86_64_rhel7/lib/python3.8/site-packages', ...] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值