HKEY_CURRENT_USER\Software\Microsoft\Microsoft SQL Server\xx\Tools\Shell\Text Editor\Visible Whitespace
Здесь xx — версия SSMS. Для 2008-ого SQL сервера имеет значение 100.
В VS, кстати, это делается комбинацией клавиш Ctrl+R, Ctrl+W.
Найдено здесь.
HKEY_CURRENT_USER\Software\Microsoft\Microsoft SQL Server\xx\Tools\Shell\Text Editor\Visible Whitespace
При выполнении команды Clean в C++ проекте типа Makefile project команды запускаются в некорректном окружении: cmake ругается на отсутствие необходимых переменных, nmake не доступен в PATH. Проблема известна, но предложенный workaround с ключом useenv не работает, неправильное окружение получают и команды Build и Rebuild.
Update: решение найдено. Необходимо в Clean command line добавить вызов bat-файла, устанавливающего необходимые переменные среды. Этот bat-файл используется в ярлыке Visual Studio Command Prompt (2010).
call "$(VCInstallDir)vcvarsall.bat" set BUILD_DIR="$(ProjectDir)$(Configuration)" set PROJECT_DIR="$(ProjectDir)..\..\.." if not exist %BUILD_DIR% mkdir %BUILD_DIR% cd %BUILD_DIR% cmake -DCMAKE_BUILD_TYPE=$(ConfigurationName) -G "NMake Makefiles" %PROJECT_DIR% nmake clean
$(TargetDir)$(ConfigurationName)\$(TargetName)\$(TargetFileName)
Update:Для Visual Studio 2010 путь будет другой.
$(ProjectDir)$(Configuration)\$(ProjectName)\$(ProjectName).exe
Так же имеет смысл указать Working Directory, использовав путь к исполняемому файлу. Для VS 2010:
$(ProjectDir)$(Configuration)\$(ProjectName)\
Update2: эти установки сохраняются не в файле проекта, а файле *.vcxproj.user
protected virtual void OnApplicationEnd(object sender, EventArgs e) { Log.Debug("Application End"); }
<%@ Application Codebehind="Global.asax.cs" Inherits="Triad.Server.QueryService.QueryServiceApplication" Language="C#" %> <script runat="server"> protected override void OnApplicationStart(object sender, EventArgs e) { base.OnApplicationStart(sender, e); // set property } </script>
C:\DOCUMENTS AND SETTINGS\user\DESKTOP\CMAKE_TEST │ CMakeLists.txt │ ├───cli │ │ CMakeLists.txt │ │ │ └───src │ main.cpp │ ├───core │ │ CMakeLists.txt │ │ │ ├───include │ │ core.hpp │ │ │ └───src │ core.cpp │ core.hpp │ └───ide_files └───vs │ CMake_test.sln │ ├───cli │ cli.vcproj │ └───core core.vcproj
set BUILD_DIR="$(TargetDir)$(ConfigurationName)" set PROJECT_DIR="$(TargetDir)..\..\.." if not exist %BUILD_DIR% mkdir %BUILD_DIR% cd %BUILD_DIR% cmake -DCMAKE_BUILD_TYPE=$(ConfigurationName) -G "NMake Makefiles" %PROJECT_DIR% nmake all
set BUILD_DIR="$(TargetDir)$(ConfigurationName)" set PROJECT_DIR="$(TargetDir)..\..\.." if not exist %BUILD_DIR% mkdir %BUILD_DIR% cd %BUILD_DIR% cmake -DCMAKE_BUILD_TYPE=$(ConfigurationName) -G "NMake Makefiles" %PROJECT_DIR% nmake clean all
set BUILD_DIR="$(TargetDir)$(ConfigurationName)" set PROJECT_DIR="$(TargetDir)..\..\.." if not exist %BUILD_DIR% mkdir %BUILD_DIR% cd %BUILD_DIR% cmake -DCMAKE_BUILD_TYPE=$(ConfigurationName) -G "NMake Makefiles" %PROJECT_DIR% nmake clean
Update: Выше указаны команды сборки для проекта cli. Для проекта core необходимо изменить вторую строку:
set PROJECT_DIR="$(TargetDir)..\..\..\core"
set BUILD_DIR="$(ProjectDir)$(Configuration)" set PROJECT_DIR="$(ProjectDir)..\..\.." if not exist %BUILD_DIR% mkdir %BUILD_DIR% cd %BUILD_DIR% cmake -DCMAKE_BUILD_TYPE=$(Configuration) -G "NMake Makefiles" %PROJECT_DIR% nmake all
XDG_DESKTOP_DIR="$HOME/Desktop" XDG_DOWNLOAD_DIR="$HOME/" XDG_TEMPLATES_DIR="$HOME/" XDG_PUBLICSHARE_DIR="$HOME/" XDG_DOCUMENTS_DIR="$HOME/" XDG_MUSIC_DIR="$HOME/" XDG_PICTURES_DIR="$HOME/" XDG_VIDEOS_DIR="$HOME/"
#!/bin/sh echo "Setting iptables rules" IPTABLES="/sbin/iptables" # delete rules and chains $IPTABLES -F $IPTABLES -X # enable everything on lo $IPTABLES -A INPUT -i lo -j ACCEPT $IPTABLES -A OUTPUT -o lo -j ACCEPT for iface in eth0 wlan0 do # enable all established input connections $IPTABLES -A INPUT -i $iface -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT $IPTABLES -A INPUT -i $iface -p udp -m state --state RELATED,ESTABLISHED -j ACCEPT $IPTABLES -A INPUT -i $iface -p icmp -m state --state RELATED,ESTABLISHED -j ACCEPT # enable outgoing traffic $IPTABLES -A OUTPUT -o $iface -p tcp -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT $IPTABLES -A OUTPUT -o $iface -p udp -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT $IPTABLES -A OUTPUT -o $iface -p icmp -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT done # block all other input connections $IPTABLES -A INPUT -p tcp -j REJECT --reject-with tcp-reset $IPTABLES -A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable # default policies $IPTABLES -P INPUT DROP $IPTABLES -P OUTPUT DROP $IPTABLES -P FORWARD DROP #protect from spoofing echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
D:\PROJECTS\SIMPLE-THINGS\TRUNK\CMAKE_TEST │ CMakeLists.txt │ ├───cli │ │ CMakeLists.txt │ │ │ └───src │ main.cpp │ └───core │ CMakeLists.txt │ ├───include │ core.hpp │ └───src core.cpp core.hppПримем соглашение, по которому клиент библиотеки вправе обращаться только к заголовочным файлам из папки include, а файлы в этой папке будут ссылаться на другие файлы из каталога библиотеки. Таким образом поставленная задача инкапсуляции будет решена.
D:\PROJECTS\SIMPLE-THINGS\TRUNK\CMAKE_TEST │ CMakeLists.txt │ ├───cli │ │ CMakeLists.txt │ │ │ └───src │ main.cpp │ └───core │ CMakeLists.txt │ ├───include │ core.hpp │ └───src core.cpp core.hppCMAKE_TEST - главный каталог проекта. Библиотека находится в папке core, сама программа - в папке cli. В каждой из упомянутых папок есть файл CMakeLists.txt, описывающий их содержимое.
cmake_minimum_required(VERSION 2.6) project(CMAKE_TEST) add_subdirectory(core) add_subdirectory(cli)Минимально необходимой для сборки проекта версией CMake является 2.6, проект называется CMAKE_TEST, это имя будет использоваться для обращения к корневой папке из подпроектов. Две команды add_subdirectory, аргументом которых являются имена папок, необходимы для указания подпроектов.
#ifndef _CORE_HPP_ #define _CORE_HPP_ class Core { public: const char * say(); }; #endif
##include "Core.hpp" const char * Core::say() { return "hello"; }
set(SRC src/core.cpp) add_library(core ${SRC})
#ifndef CORE_HPP #define CORE_HPP #include "../src/core.hpp" #endif
#include <iostream> #include "core.hpp" int main(int argc, char **argv) { Core core; std::cout << core.say() << std::endl; return 0; }
include_directories(${CMAKE_TEST_SOURCE_DIR}/core/include) link_directories(${CMAKE_TEST_BINARY_DIR}/core) set(SRC src/main.cpp) add_executable(cli ${SRC}) target_link_libraries(cli core)Команда include_directories определяет папку, где компилятор будет искать заголовочные файлы, подключаемые с помощью include, при этом переменная CMAKE_TEST_SOURCE_DIR указывает на корневую папку проекта. link_directories определяет, где искать библиотеки для линковки, CMAKE_TEST_BINARY_DIR - директория для сборки проекта. 4-ая строка задает список исходников, add_executable говорит, что будет собираться приложение cli.exe, target_link_libraries перечисляет библиотеки, с которым его нужно слинковать. Библиотека core по умолчанию будет статической.
cmake .. msbuild CMAKE_TEST.sln /t:Rebuild /p:Configuration=Release
sudo aptitude update sudo aptitude install lvm2
sudo vgchange -a y vg00Если диск не размечен под LVM, придется использовать утилиты vgcreate, lvcreate и т.д., поскольку установщик не поддерживает управление томами LVM.
sudo mkdir /mnt/target sudo mount /dev/vg00/lvroot /mnt/target sudo mount /dev/sda5 /mnt/target/boot sudo mount -o bind /dev /mnt/target/dev sudo mount -o bind /dev/pts /mnt/target/dev/pts sudo mount -o bind /dev/shm /mnt/target/dev/shm sudo mount -o bind /proc /mnt/target/proc sudo mount -o bind /sys /mnt/target/sys
sudo chroot /mnt/target sudo aptitude update sudo aptitude install lvm2
sudo umount /mnt/target/sys sudo umount /mnt/target/proc sudo umount /mnt/target/dev/shm sudo umount /mnt/target/dev/pts sudo umount /mnt/target/dev sudo umount /mnt/target/boot sudo umount /mnt/target/